1
我需要設置常量射燈位置GLKBaseEffect常量定位光:所以當我改變模型觀察,光停留在同一個地方。我怎樣才能做到這一點?與GLKBaseEffect
我需要設置常量射燈位置GLKBaseEffect常量定位光:所以當我改變模型觀察,光停留在同一個地方。我怎樣才能做到這一點?與GLKBaseEffect
唯一的解決辦法幫我這裏是做自己的着色器。
當您使用GLKBaseEffect設置燈的位置時,它將使用當前存儲在其modelviewMatrix屬性中的值。所以,你需要爲你的對象設置這個值的兩倍,一次光,一旦:
self.effect.transform.modelviewMatrix = GLKMatrix4Identity;
self.effect.light1.position = GLKVector4Make(0.0, 1.0, 3.0, 1);
GLKMatrix4 modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, -3.0f);
modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, GLKMathDegreesToRadians(90), 0, 1, 0);
self.effect.transform.modelviewMatrix = modelViewMatrix;
這應該做的伎倆
嗯。我的解決方案是錯誤的。似乎隨後的模型視圖修改也會影響光(對於OpenGL 1.0,它是例外的,'GLKBaseEffect'試圖模擬它)。 – kpower
我要看看,但我的項目中繪製函數內聲明的時候能正常工作。我承認我主要使用OpenGL ES 2.0的着色器,正是因爲我知道我的代碼做什麼。雖然GLKBaseEffect模擬的OpenGL ES 1.1,很多的實現細節相當棘手和隱藏。一路着色! –
非常同意你的看法。但現在我只是想節省時間:我不知道GLSL,並希望只是讓第一應用程序版本的ASAP。 – kpower