public class ShaderActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView myView = new MyView(this);
setContentView(myView);
}
public class MyView extends View{
//声明BitMap对象
private Bitmap bitmap;
//声明位图渲染图像
private Shader bitmapShader;
//声明线性渲染对象
private Shader linerGradient;
//声明光束渲染对象
private Shader radialGradient;
//声明梯度渲染对象
private Shader sweepGradient;
//声明混合渲染对象
private Shader composeGradient;
private Paint paint;
//声明颜色数组
private int[] colors;
private boolean isFrist = true;
/**
* @param context
*/
public MyView(Context context) {
super(context);
//获得BitMap实例
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.openning);
//实例化画笔
paint = new Paint();
colors = new int[]{Color.RED,Color.GREEN,Color.BLUE};
//实例化位图渲染对象,X坐标方向重复图形, Y坐标方向镜像图形
bitmapShader = new BitmapShader(bitmap,TileMode.REPEAT,TileMode.MIRROR);
//实例化线性对象
linerGradient = new LinearGradient(0, 0, 100, 100, colors, null, TileMode.REPEAT);
//实例化光束
radialGradient = new RadialGradient(100,100,80,colors,null,TileMode.REPEAT);
//实例化梯度
sweepGradient = new SweepGradient(200,200,colors,null);
//实例化混合
composeGradient = new ComposeShader(linerGradient,radialGradient,PorterDuff.Mode.DARKEN);
setFocusable(true);
}
/* (non-Javadoc)
* @see android.view.View#onDraw(android.graphics.Canvas)
*/
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(isFrist){
String content = "按上、下、左、右、中间键测试";
paint.setColor(Color.BLUE);
canvas.drawText(content, 0, content.length()-1, 20,20,paint);
}else{
//全屏画矩形
canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
}
}
/* (non-Javadoc)
* @see android.view.View#onKeyDown(int, android.view.KeyEvent)
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
isFrist = false;
if(keyCode == KeyEvent.KEYCODE_DPAD_UP){
paint.setShader(bitmapShader);
}
if(keyCode == KeyEvent.KEYCODE_DPAD_DOWN){
paint.setShader(linerGradient);
}
if(keyCode == KeyEvent.KEYCODE_DPAD_LEFT){
paint.setShader(radialGradient);
}
if(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT){
paint.setShader(sweepGradient);
}
if(keyCode == KeyEvent.KEYCODE_DPAD_CENTER){
paint.setShader(composeGradient);
}
//重绘界面
postInvalidate();
return super.onKeyDown(keyCode, event);
}
}
}
分享到:
相关推荐
NULL 博文链接:https://andli.iteye.com/blog/1187142
在学习了一点儿shader和图形卡发展的历史之后,你将经历创建一个简单shader的过程,只要渲染一个带有每像素镜面反射光的简单3D模型,然后把shader导入到你的游戏引擎。你将用来创建shader、甚至在你开始把更多代码...
图形渲染管线
但是你不需要关心可移值性,针对特定工具的shader代码,使用FX Composer编写的shaders可以直接用于第三部分编写的渲染引擎。 FX Composer是一个免费的工具,可以从NVIDIA的开发者社区下载(下载链接可以本书的配套...
•添加了新的后处理堆栈工具它会使用给定着色器的PPS渲染器和设置生成cs脚本。 •Amplify Shader Editor通过高达v7.2.x的模板支持HD,Lightweight和Universal RP。 •Legacy HD和Lightweight SRP v3.xx / v4.xx / v5...
OpenGL 图形渲染管线及 GPU shader 编程 图像处理算法及实现 C++ 面向对象编程思想和方法,了解基础的设计模式和架构思维 快速看懂及使用网上的代码、库及各种资料 从问题到抽象、到数学建模再到算法实现的方法 使用...
3D-unity-clip-shader.zip,用于渲染实体剪裁几何体的统一着色器和脚本,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。
SwiftShader是一个高性能的,基于CPU的OpenGL ES和Direct3D 9图形APIs的实现。它的目标是为高级3D图形提供硬件独立性。
该插件的目的是使用Unity的新管道来创建NPR(非照片级)PSX风格的复古图形,其中以shadergraph作为材质的基础,而URP的渲染功能则作为后期处理效果的基础。 产品特点 该插件具有完整的功能,带有一个点亮/熄灭的...
渲染管线也称为渲染流水线或像素流水线或像素管线,是显示芯片内部处理图形信号相互独立的的并行处理单元。在某种程度上可以把渲染管线比喻为工厂里面常见的各种生产流水线,工厂里的生产流水线是为了提高产品的生产...
使用编译链接自定义的着色器(shader)。用GLSL语言来实现自定义顶点/片元着色器,并将图形进行简单的渲染显示。包含创建图层,创建上下文,清空缓存区设置RenderBuffer,设置FrameBuffer,开始绘制等步骤的详情代码...
渲染:Shader BitmapShader 图形渲染 LinearGradient 线性渲染 RadialGradient 环形渲染 SweepGradient 梯度渲染(扫描渲染) ComposeShader 组合渲染 paint.setShader(bitmapShader); 效果展示,设置...
轻松的图形共享和画布截图按钮 最新推出!SRP 资源包自动导入器 最新推出!Unity 2019 兼容性 最新推出!支持后处理栈着色器 最新推出!兼容 Unity 插件中的物质 最新推出!支持自定义渲染纹理 最新推出!支持 HD、...
Amplify Shader Editor 一款材质工具 描述 内置渲染器、HD、URP 和轻量级 SRP 支持 最新推出!HDRP 矢量移位样本 最新推出!URP 和 HDRP 的镶嵌选项 最新推出!URP 的半透明和透射选项 最新推出!新的启动屏幕窗口 ...
该项目附带示例图,以展示使用Shader Graph的自定义照明技术。 可以在随附的博客文章中找到有关照明技术的详细信息。 加载项目时,您可以在自述文件检查器中找到有关项目内容的更多信息。 如果您不知道如何克隆此...
DuEngine是一种高效的交互式C ++图形引擎,用于实时渲染,管理,记录具有各种纹理的类似ShaderToy的演示的图像和视频截图。 它包含GPU上的算法,例如,抗锯齿,双向过滤,扩散,分布,内核凹面渲染以及丰富的光线...
在Stride图形合成器中显示的Stride根渲染功能的演示实现。 根渲染功能可用于通过进行自定义绘制并构建自己的着色器管道。 这样做的好处是,绘图将与主相机矩阵和后缓冲纹理一起发生,因此可以正确地集成到场景渲染...
android-opengles- glsl-shader 图形渲染 + android demo
您将学习诸如创建UI面板,画布渲染模式,添加面板,矩形变换简介,锚点,动画按钮,创建滑块,使用UI元素连接脚本,创建主菜单,添加按钮,添加等主题标题,缩放和着色按钮,动画主菜单,制作alpha 1,菜单脚本和...
Unity Shader基础教程梁亚当( ) 欢迎使用,本教程应该是对Unity着色器编写的简要介绍。 它假定您具有使用Unity的一些先前知识,但从未接触过着色器或材质。 我们将逐步构建着色器,并逐步显示所有功能。 如果您有...