Doku ile bir kare oluşturmaya çalışıyorum. Çalışıyor, iki üçgenin birbiriyle buluştuğu köşegen çizgide piksellenmiş bir çizgi alıyorum.OpenGL üçgenleri istenmeyen kenar sınırı
doku:
üç kare sonucunu işlemek, her kare iki üçgen oluşmaktadır:
hat sadece çapraz çizgiler üzerinde gösterir. Dikey veya yatay kenarlarda hiçbir şey görünmez.
Kodu:
import qualified Graphics.Rendering.OpenGL as GL
import qualified Graphics.UI.GLFW as GLFW
Başlatma:
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
: quad Rendering
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
dokusunu yükleniyor
GL.Polygons
ve GL.Quads
görüntülemelerini denedim: aynı sonuç.
-- A
ile etiketlenmiş satırı yorum yaptığımda giderler. Niye ya?
Ye tanrılar, çokgen yumuşatma! Zaten bu antik iğrençliğin R'lyeh'de hala olduğunu unuttum. Daha iyi haskelly yolculukları ile güzel yakalamak ve iyi şanslar! (Devam edin ve bir ara nesnelere geçiş yapmasını sağlayın.) – Kos
@Kos, Ben hala OpenGL öğreniyorum, "arabellek nesneleri" hakkında bir şey bilmiyorum. İyileştirme için bir ipucu verdiğiniz için teşekkürler, şimdi araştırmaya ve öğrenmeye başlayacağım. :) –