clq
浏览(1) +
2025-07-22 20:03:28 发表
编辑
关键字:
opengl 着色器的点缓冲的坑
如果一个顶点由 5 个 float 组成,那么它们在着色器代码中的表示为
attribute vec3 aPos;
attribute vec2 aTexCoord;
如果一个顶点由 8 个 float 组成,那么它们在着色器代码中的表示为
attribute vec3 aPos;
attribute vec3 aNorm;
attribute vec2 aTexCoord;
这里有个大坑,如果 aNorm 在后面的 main 代码中没有用到,那么 aTexCoord 就会读取到 aNorm 的数据! 原因是 gpu 编译器会优化掉没有用到的代码。
这在 opengl es 2 下也是这样的,在 3.0 后应该好点,因为会直接指定它们在顶点缓冲的排列位置。
如果调试中实在要用到没处理过的数据的话,可以考虑让它 * 0.00001 这样的极小数,然后加到某个 xyz 分量下就行了。
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.