2012-09-04 59 views
0

我試圖將我的紋理移動到像素的中心,如OpenGL Texture Coordinates in Pixel Space所述,但我正在努力這樣做。我們試圖在紋理中還是屏幕上放置像素?我們如何訪問它們?這裏是我的頂點着色器:使用頂點着色器將紋理移動到像素中心

"uniform mat4 " + ShaderProgramConstants.UNIFORM_MODELVIEWPROJECTIONMATRIX + ";\n" + 
"attribute vec4 " + ShaderProgramConstants.ATTRIBUTE_POSITION + ";\n" + 
"attribute vec4 " + ShaderProgramConstants.ATTRIBUTE_COLOR + ";\n" + 
"attribute vec2 " + ShaderProgramConstants.ATTRIBUTE_TEXTURECOORDINATES + ";\n" + 
"varying vec4 " + ShaderProgramConstants.VARYING_COLOR + ";\n" + 
"varying vec2 " + ShaderProgramConstants.VARYING_TEXTURECOORDINATES + ";\n" + 

"void main() {\n" + 
" " + ShaderProgramConstants.VARYING_COLOR + " = " + ShaderProgramConstants.ATTRIBUTE_COLOR + ";\n" + 
" " + ShaderProgramConstants.VARYING_TEXTURECOORDINATES + " = " + ShaderProgramConstants.ATTRIBUTE_TEXTURECOORDINATES + ";\n" + 
    " gl_Position = " + ShaderProgramConstants.UNIFORM_MODELVIEWPROJECTIONMATRIX + " * " + ShaderProgramConstants.ATTRIBUTE_POSITION + ";\n" + 
"}" 

我是新來的Open GL和剛開始做的頂點着色器的研究,所以任何建議或提示將不勝感激。

編輯:我遇到的問題是,從我的紋理像素縮放時變形。普通紋理看起來很好,但是當它們在4x4矩陣(模型視圖矩陣)上使用scaleM命令進行縮放時,看起來像隨機行和列中有相同像素的兩列或兩行。

+1

你能給出更多關於實際問題的背景嗎?我不知道爲什麼你認爲你需要在頂點着色器中做到這一點。如果你只是想確保紋理在紋理元素的中心進行採樣,那麼我有一個可以幫助你的描述性圖像的舊帖子:http://stackoverflow.com/a/11458037/1236185 – Tim

回答

0

原來的比例因子導致了失真。我所要做的就是確保紋理中的每個像素在顯示器上具有相同數量的像素,並且失真消失。

相關問題