为清楚起见,我开始与我的问题:RenderMonkey在GLSL的TEXCOORD流映射中有错误吗?
是否有可能使用(在着色器代码)的自定义属性命名我为TEXCOORD使用在(OpenGL的)流映射在RenderMonkey中设置1.82还是我必须使用gl_MultiTexCoord0?
使用RenderMonkey的版本1.82:
背景(问题可能为正常使用过,即自定义名称或gl_Normal有效)。 我已经成功地使用流映射来映射常规顶点属性“位置”(也许是“普通”),但纹理坐标似乎没有正确转发。 对于着色器代码,我使用#version 330和GLSL中的“in”限定符,这应该是确定的,因为RM不会自己编译着色器(OpenGL驱动程序)。
我已经尝试了.obj和.3ds文件(从blender导出),并且在检查波前.obj文件时,所有纹理坐标信息以及顶点位置和法线。
如果不可能,流映射被打破,并且在流映射编辑器中命名变量没有意义(除了顶点位置流有效),因为必须使用内置的无论如何变量。
更新: 如果使用过时的内置变量,一个具有着色器如
#version 330 compatibility
out vec2 vTexCoord;
使用兼容模式,并在主要功能:
vTexCoord = vec2(gl_MultiTexCoord0);
(现在我我不知道法线的流映射,只要我的纹理坐标正常工作,我就有正常的问题,不得不恢复到gl_Normal。)
这里是工作解决方案的图片,但内置变量(是的,图片中的注释texcoord变量没有与流映射对话框中的名称相同,但是当我尝试使用它,所以没关系):
我没有一个工作解决方案想你的问题,但我可以建议一个多平台的替代品,ShaderMaker:http://cg.in.tu-clausthal.de/teaching/shader_maker/index.shtml – appas
谢谢你的建议。我没有评估ShaderMaker,但它似乎是针对固定管道。显然还有另一个名为Lumina的项目,它也可能是一种替代方案。 – Deorbit
可以渲染猴子支持3.30着色器吗?我认为它仅适用于OpenGL 2.1功能... –