我已經寫了大量的 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 _ [...]」統一 - 或更改着色器源中的屬性名稱?