kanzi编写OpenGL
kanzi编写OpenGL
王永旺1.创建材质类型
创建后会生成对应的材质,材质类型,OpenGL代码。
2.修改OpenGL代码
- 原始的顶点着色器代码
1 | attribute vec3 kzPosition; |
attribute
和uniform
的区别
在 OpenGL 中,attribute
和 uniform
是两种不同类型的变量,用于在顶点着色器和片段着色器之间传递数据。它们的主要区别在于它们的作用和使用方式:
- attribute:
attribute
变量用于在顶点着色器中传递顶点数据,比如顶点位置、颜色或纹理坐标等。attribute
变量在每个顶点上都有不同的值,因此它们通常用于描述顶点特性。- 顶点着色器中的
attribute
变量必须声明为attribute
类型,并且需要使用顶点数据缓冲对象 (VBO) 来传递数据。
- uniform:
uniform
变量用于在顶点着色器和片段着色器之间传递全局数据,例如变换矩阵、光照属性或纹理对象等。uniform
变量在整个绘制调用期间都保持不变,因此它们通常用于描述全局状态或共享数据。- 顶点着色器和片段着色器中的
uniform
变量必须声明为uniform
类型,并且可以在绘制调用之前使用 OpenGL API 函数设置它们的值。
总的来说,attribute
用于描述每个顶点的局部特性,而 uniform
用于描述全局的状态或共享数据。
在代码中引用变量后,在材质类型的属性窗口中就会显示在代码内部的引用的变量,点击
Sync with Uniform
按钮生成相应的属性,若不存在则创建。
- OpenGL使用的是笛卡尔右手坐标系,如下图所示。
顶点着色器代码
纹理坐标的取值范围为0-1
1 | precision mediump float; |
- 片元着色器代码
1 | precision mediump float; |
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果