有一张砖墙的图片将它作为纹理贴图赋给材质,将此材质赋给场景中的cube不涉及光照啊阴影什么的,就是赋个贴图,并不复杂Shader代码:Shader"Custom/TestVFTexture"{Properties{_MainTex("MainTex",2d)=""{}}SubShader{pass{CGPROGRAM#pragmavertexvert#pragmafragmentfrag#incl
分类:
其他好文 时间:
2018-01-29 18:19:46
阅读次数:
184
以前写cuda:初始化环境,申请显存,初始化显存,launch kernel,拷贝数据,释放显存。一个页面大部分都是这些繁杂但又必须的操作,有时还会忘掉释放部分显存。 今天用C++11封装了这些CUDA操作,然后就可以专注于写kernel代码了。.cu文件就像glsl shader文件一样简洁明了。 ...
分类:
编程语言 时间:
2018-01-29 00:27:30
阅读次数:
595
我们每要实现一个效果,就如这个系列开头所说,先分析效果需要用什么模式来实现。 我们发现,水流动的效果跟uv有关,所以我们需要去控制uv。 控制uv一般有三种方式: 1.time 2.采样其他图 3.C#输入参数 然后根据这些参数,用某个公式实现 这个shader,使用了time + 采样其他图 +C ...
分类:
其他好文 时间:
2018-01-27 11:20:28
阅读次数:
242
在“ShaderLab学习小结(四)简单产生阴影”基础上,在顶点片断着色器中编写程序使材质能接收阴影将小结(四)中添加的plane的材质换成和球体一样,即用相同的shader,效果如下:阴影消失,plane也变的有些暗。球的shader没变,也就是说球还是产生阴影了,但是底下的plane也换成球的材质,接收不到阴影。那就要修改shader让它能接收阴影。Shader代码:Shader"Custom
分类:
其他好文 时间:
2018-01-26 17:14:29
阅读次数:
204
在“ShaderLab学习小结(五)接收平行光阴影”中,通过修改代码,让原来的shader可以接收主平行光的阴影。但是没有点光源的阴影。在原有的pass通道下面再添加一个pass通道,用于接收点光源阴影。直接将原来的pass复制粘贴成新的pass通道,再进行一些修改即可。pass{tags{"lightmode"="forwardadd"}//1.blendoneone//2.CGPROGRAM#
分类:
其他好文 时间:
2018-01-26 17:11:40
阅读次数:
241
在之前“ShaderLab学习小结(三)漫反射+高光+点光源请添加链接描述”中的场景加入一个plane,如下图:被平行光和点光源照射的球体没有产生阴影代码方面很好解决,就是在原先的shader最末尾加个fallback即可Shader"shadername"{SubShader{}fallback"Diffuse"}效果如下图:在两个光源照射下,球体产生了阴影,并投射到下面的plane上。注:pl
分类:
其他好文 时间:
2018-01-26 14:48:50
阅读次数:
196
场景中有一个平行光,一个×××点光源,设高光颜色为绿,效果如下:Shader代码:Shader"Custom/DifSpecPoint"{Properties{_Spec("Spec",Color)=(1,1,1,1)//高光颜色_Shin("Shin",range(1,32))=2//高光强度系数}SubShader{pass{tags{"lightmode"="forwardbase"}CGPR
分类:
其他好文 时间:
2018-01-26 14:48:42
阅读次数:
241
目的:在场景中建立plane平板,通过shader使平板在y坐标上有突起,且随y值定义不同的颜色先看下效果:Shader代码如下:Shader"Custom/ChangeShapeY"{Properties{//定义变量,这些可在物体Inspector面板中进行调整_R("R",range(0,5))=2//半径_Center("Center",range(-5,5))=0//中心点_Scale(
分类:
其他好文 时间:
2018-01-26 12:41:37
阅读次数:
142
Shader"Custom/SimpleShader"//Shader最外层,""中定义Shader名{SubShader{//必要组成部分pass{//通道CGPROGRAM//CG程序开头#pragmavertexvert//定义顶点级程序#pragmafragmentfrag//定义片断级程序#include"unitycg.cginc"//引用unitycg文件,unity自定的结构体和函
分类:
其他好文 时间:
2018-01-26 11:08:12
阅读次数:
185
使用之前的方法写Shader是一件很痛苦的事情,把Shader代码直接卸载C++文件中,需要使用很多引号来包裹,既不美观也不方便。 我们这节的目的是使用纯文本文件保存Shader。 首先在工程中创建两个文件,分别命名为VertexShaderCode.glsl 和 FragmentShaderCod ...