私はテクスチャで四角形をレンダリングしようとしています。 2つの三角形がお互いに出会う斜めの端にピクセル化された線が表示されている点を除いて、動作しています。OpenGLの三角形が不要なエッジボーダー
テクスチャ:
3つの正方形のレンダリング結果は、各正方形は、二つの三角形で構成されている:
線だけ対角線上に示しています。垂直または水平のエッジには何も表示されません。
コード:
import qualified Graphics.Rendering.OpenGL as GL
import qualified Graphics.UI.GLFW as GLFW
初期化:
GL.textureBinding GL.Texture2D $= Just texName
GL.renderPrimitive GL.TriangleStrip $ do
GL.texCoord $ GL.TexCoord2 0 (1::GL.GLfloat)
GL.vertex $ vertex3 20 0 0
GL.texCoord $ GL.TexCoord2 0 (0::GL.GLfloat)
GL.vertex $ vertex3 20 20 0
GL.texCoord $ GL.TexCoord2 1 (1::GL.GLfloat)
GL.vertex $ vertex3 0 0 0
GL.texCoord $ GL.TexCoord2 1 (0::GL.GLfloat)
GL.vertex $ vertex3 0 20 0
GL.textureBinding GL.Texture2D $= Nothing
:クワッドをレンダリング
GL.texture GL.Texture2D $= GL.Enabled
(texName:_) <- GL.genObjectNames 1
GL.textureBinding GL.Texture2D $= Just texName
GL.textureFilter GL.Texture2D $= ((GL.Nearest, Nothing), GL.Nearest)
_ <- GLFW.loadTexture2D "wall.tga" [GLFW.BuildMipMaps]
:
GL.lineSmooth $= GL.Enabled
GL.polygonSmooth $= GL.Enabled
GL.blend $= GL.Enabled -- A
GL.blendFunc $= (GL.SrcAlpha, GL.OneMinusSrcAlpha)
GL.lineWidth $= 1.5
テクスチャをロード
レンダリングしようとしましたGL.Polygons
とGL.Quads
:同じ結果です。
私が-- A
というタグが付けられた行にコメントすると、それらは消えます。どうして?
イエス神、恐ろしいポリゴンスムージング!私はすでに、この古代の憎悪はまだR'lyehに潜んでいることを忘れていました。ニースのキャッチと幸運をさらにhaskelly旅で! (先に進んで、いつかオブジェクトをバッファリングするようにしてください) – Kos
@Kos、私はまだOpenGLを学んでいますが、 "バッファオブジェクト"について何も知らないです。改善のためのヒントをいただきありがとうございます、私は今、それについての調査と学習を始めます。 :) –