我已经写了大量的 OpenSceneGraph的和GLSL 330光线和阴影
#version 330 core
GLSL着色器,我想用OSG的(OSG)3.2.0架构重用一起,并尝试找出如何从我需要通过制服传入的OSG中获得状态,以及如何设置它们而不必更改经过充分测试的着色器代码,以及如何填充任意命名的属性。
此(140版本时,OpenGL 3.1) http://trac.openscenegraph.org/projects/osg/browser/OpenSceneGraph/trunk/examples/osgsimplegl3/osgsimplegl3.cpp
例如引起混叠某些属性和均匀的名称为 “osg_” 的概念,但我倒是喜欢用任意名字制服,
uniform mat4 uMVMatrix;
/*...*/
,并指,还是让OSG参考,由他们的号码属性而已,所以某事像这样
/*...*/
layout(location = 0) in vec4 aPosition;
layout(location = 1) in vec3 aNormal;
layout(location = 2) in vec2 aST;
在我的遗产着色器使用
,我想了OSG框架,它已经维持了“可绘制区域”,或VBO来填充,至少,使用API调用并自己做。
另外,我想通过场景图和访客填充灯光和shawdowmaps的制服, SG中的“某处”和“某种程度”必须将light和esp阴影信息汇总为默认阴影,所以我只想简单地使用这些数据并根据自己的自定义着色器进行调整。
因此,根本的问题是
如何从OSG内填充任意 GLSL 330个着色器与数据,而不必重新发送到冗余均匀分配 - 提供我的“U [..]黑客帝国”手动除到由OSG设置的“osg _ [...]”统一 - 或更改着色器源中的属性名称?