Shader语法_Unity3d的HLSL之(三)的一些错误提示

学了12年英文,可能你还是不会说,唯一的方法就是去一个全英语的环境,那么你一个月的英语水平提高的速度将绝对比你学12年还快,什么时候去最好?怎么才能准备好,答案是,根本不用准备,而且越快越好!

最近归纳了一下,Shader有几个重点:

Unity做了“”一些“”改版,并不是原生Shader

Shader是一门程序语言

Shader并没有专门的编辑器和Debugger,

Shader是用来控制GPU渲染的

 

针对以上几点,重点说说:

第一点:Shader被改的乱七八炸,这有点废话,虚幻不改,大牛不改?你平时写程序不改?就是很多人以为世界上只有一种英语。。。。

Unity用的人不少,学习的,培训的,实战的都一大堆,所以会很乱

第二点:这是一门编*程*语*言哦,这就好办了,shader我不懂,gpu压根没见过,但是编程我擅长哦。。。。

第三点:所有难懂的然后程序员又自认为好用的语言,就是都类似BAT,BASH等脚本,还要什么自行车

 

碰到的一些错误:

 

Shader error in 'Unlit/ImageEffect': Did not find shader kernel 'vert' to compile (on d3d11

A:可能原因

1.顶点和片元的函数名不统一

2.定义的时候写了分号

正确写法

CGPROGRAM
            #pragma  vertex vert
            #pragma  fragment frag//片元入口函数
            #include "UnityCG.cginc"//引用unity里面的CG库

 

Output variable vert_img contains a system-interpreted value (SV_POSITION) which must be written in every execution path of the shader.  Unconditional initialization may help.
Compiling Vertex program
Platform defines: UNITY_ENABLE_REFLECTION_BUFFERS UNITY_USE_DITHER_MASK_FOR_ALPHABLENDED_SHADOWS UNITY_PBS_USE_BRDF1 UNITY_SPECCUBE_BOX_PROJECTION UNITY_SPECCUBE_BLENDING UNITY_ENABLE_DETAIL_NORMALMAP SHADER_API_DESKTOP UNITY_COLORSPACE_GAMMA UNITY_LIGHT_PROBE_PROXY_VOLUME UNITY_LIGHTMAP_FULL_HDR

 

新手如何编程

其实从上面的问题就不难看出,程序,编程的入门其实无他,就是细心细心再细心(哥完全没有),很多问题无非就是有无分号的问题,“;”很重要,如果不是分号问题,那么就是大小写问题(经验所得,一般要超过2年的程序生涯才有可能避免和及时发现这个问题,编程的过程中充满各种变量定义,方法命名);其实看一个人能不能区分大小写就知道他的码龄了,和树的年轮一样,贼准!

另外,就是所见即所得,就是你改一行代码,必须马上就能看到结果,对于一些应用类的开发尤其如此,而且新学一个语言确实这样,且不说“”不积跬步无以致远“”,就是一个小问题不处理好,后面大问题,莫名其妙的问题就会让你处理不过来。很多人以为程序员就是一天坐10天一直敲代码,我们还真偷笑,不是敲一行代码,摸鱼一小时吗?但背后逻辑就是所见即所得,大牛可以摸鱼,新手还是得好好锻炼

如何排查问题,大牛就是看一眼就知道什么问题了,是经验问题么?好像也不全是,但好像大部分情况是,如果遇到了经验意外的问题,天才也花半天处理,所以真正的大牛要预见问题,避开问题

你可能感兴趣的:(ShaderShader,程序员瞎折腾)