Creator3D: shader10_解析【Creator3D shader】的正确姿势(汇总1)

a_texcord就是uv坐标

搜迪斯噶。谢谢

求一个effect书写提示和格式提示插件/扩展:喜悦:各种格式提示错误,在code里面看不出个啥

我也没有啊。学一下glsl语法吧。:12:

请教楼上几位一个问题 。
我写了一行
v_position.x += 1;
就报错

这四个报错只要我稍微改点东西就这样,看不出来到底是格式错误还是我写错了。
+= *=
if(In.position.y > 0)
等等情况基本都是这四行报错。只要删掉,马上就正常了。

不要出现整数,应该是浮点数,1.0或者0.0

mark!!!

请教个问题,在心动里面,假如给模型添加贴图之后,在放大的情况下,部分面的贴图没跟着放大。uv要怎么设置了了?

贴图并没有正确的跟着一起拉伸
我改了一下下面这行,好像并没有同步效果。
vec4 col=texture(mainTexture, v_uv);
改为
vec4 col=texture(mainTexture, v_uv*abs(sin(cc_time.x)));

还没研究到贴图:joy:,你可以研究一下

内发光最后一行更正一下:
(col * vec4(colors,1.0))
此处应该是*而不是+.
+号无效果,*才有效果。

texture是纹理采样函数,放大应该对顶点进行处理,也就是设置节点的scale,和uv没关系

这些都是glsl基础语法,建议你去学习一下。
glsl不存在++等等这些操作符,只有加减乘除,=,==。只有相同类型才能进行这些操作,比如int只能和int比较,只能赋值给int,不能和float比较。

3Q:5:

感谢大佬,mark

mark!,牛批

看了您在心动里的shader代码,从效果看,片元函数里似乎没必要输入v_position和v_normal吧?因为没看到这两个东西在片元中参与什么计算呢?
另外在unlit_vs片段里,有没有必要输出法线、切线、副切线和两个uv?在顶点函数中您把法线那些转到世界空间的用意在哪?因为从效果来看,那颗心没有光影,所以不太知道以上那些东西的输出输入和计算的用意是什么。还是说shader中不管是否用到,都必须做以上那些的输出输入和计算?

老师你好,我看过几个别人写的shader也跟您在第一个红色小球中的shader一样,没有顶点函数,我想请教下什么情况下,一个shader中可以省略顶点函数?这个问题困扰很久了。

m a r k .

用了,学了, 那么就点个赞

哈哈哈,之前的好多文章都图片都丢失了,大家可以在csdn或者公众号看更详细的 :rofl: