结构体 和 接口块
结构体 声明: GLSL struct Vertex { vec3 position; } struct Vertex { vec3 position; } 使用: GLSL void main() { Vertex vtx; vtx.position = vec3(1); } …
结构体 声明: GLSL struct Vertex { vec3 position; } struct Vertex { vec3 position; } 使用: GLSL void main() { Vertex vtx; vtx.position = vec3(1); } …
判断一个面的朝向(正面或背面)主要基于顶点缠绕顺序(Winding Order) 的规则。 缠绕顺序(Winding Order) 当定义三角形时,三个顶点的连接顺序决定了面的“缠绕方向”。 默认规则: 逆时针(CCW) 顶点顺序 → 正面(Front Face) 顺时针(CW) …
面朝向-> {{< link title=“面朝向” url="/posts/8b1d3ab2" icon="/favicon.ico" >}} Cull指令控制面剔除主要在 …
纹理环绕方式 环绕方式 描述 对应OpenGL选项 重复 重复纹理图像 GL_REPEAT 镜像重复 和重复一样,但每次重复图片是镜像放置的 GL_MIRRORED_REPEAT 边缘钳制 纹理坐标会被约束在0到1之间,超出的部分会重复纹理坐标的边缘 …
控制新绘制像素(源/Source)与已有像素(目标/Destination)的颜色叠加方式。 声明混合在SubShader/Pass中声明
Render Queue作用与原理 渲染顺序控制:决定物体在GPU上的绘制顺序 核心渲染原则: 不透明物体(Queue<2500):从前向后渲染(深度优化) 透明物体(Queue≥2500):从后向前渲染(正确混合) 深度测试关系:ZWrite On(不透明) vs …
Shader变体(Shader Variants)是什么? 定义:通过预处理器指令(如 #if)动态修改Shader代码分支,生成不同功能的Shader实例。 用途:实现动态光照、平台适配、画质分级等功能,避免运行时分支判断开销。 代价:变体过多会导致包体增大、编译时间增长、内存 …
声明与绑定在 Properties 中声明纹理 SHADERLAB _MainTex ("Base Texture", 2D) = "white" {} _MainTex ("Base Texture", 2D) = …
GetWorldSpaceNormalizeViewDir HLSL half3 GetWorldSpaceNormalizeViewDir(float3 positionWS) half3 GetWorldSpaceNormalizeViewDir(float3 …
定义材质的可调节属性 语法声明属性 SHADERLAB Properties { [Attribute][...] _Name ("显示名称", Type) = 默认值 } Properties { [Attribute][...] _Name ("显示 …