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

有事去了趟西安,今天刚回来,公司有一直没网,拿手机回复一下。
你这边没有变化指的是啥,可以给个截图我看看效果嘛

matWorld和matWorldIT :你可以看一下常用 shader 内置 Uniform,里边的cc-local.chunk,因为通过 StandardVertInput In; CCVertInput(In);拿到的模型的顶点之类的数据都是基于模型自身的,模型需要渲染到屏幕需要三部转化:自身坐标—>世界坐标–>视图坐标

你可以看一下这个链接:https://blog.csdn.net/biezhihua/article/details/78926849

至于a_texCoord,因为菜鸟现在在项目中没有怎么用到v_uv,自己了解的比较少,在后边的示例中等菜鸟自己弄清楚会专门说明的,抱歉奥,菜鸟也是在研究的过程中

:ox:
很强

thankyou,那几个矩阵在官网上查到了,a_texcord在抑郁老铁推荐的那两个里面都没找着。谁先找到谁留言把。辛苦。

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