2013-10-28 2 views
2

Haskell and OpenGL을 사용하여 지형을 생성하려고합니다. 코드를 실행하면 작동하지만 (검은 색 창이 표시됨) 점은 나타나지 않습니다. 내가 어디로 잘못 가고 있니?왜 하스켈 OpenGL에 포인트가 표시되지 않습니까?

import Data.Int 
import Graphics.UI.GLUT 

type Terrain = [(GLint, GLint, GLint)] 

points = generateFlatTerrain 100 100 0 

generateFlatTerrain :: Int32 -> Int32 -> Int32 -> Terrain 
generateFlatTerrain width height depth = 
    [(x, y, z) | x <- [1..width], y <- [1..height], z <- [depth]] 

drawTerrain :: Terrain -> IO() 
drawTerrain terrain = renderPrimitive Points 
         $ mapM_ (\(x, y, z) -> vertex $ Vertex3 x y z) terrain 

main :: IO() 
main = do 
    (_progName, _args) <- getArgsAndInitialize 
    _window <- createWindow "Hello, world!" 
    displayCallback $= display 
    mainLoop 

display :: DisplayCallback 
display = do 
    clear [ ColorBuffer ] 
    drawTerrain points 
    flush 

답변

1

그리고 가장 간단한 대답은 다음과 같습니다. OpenGL의 좌표 공간은 [-1.1.1]입니다.

[-1, -1 + 1/width,..1], ...... 
+1

[ "당신의 규모가 격렬하게 잘못된 것입니다 :.. 장면은 당신이 장면에서 하나의 삼각형을 하나의 텍셀을보고 예상 한 것보다 훨씬 크다"] (HTTP : 그러므로 나는 내 코드를 수정 // dmalcolm.livejournal.com/2433.html) OpenGL 전문가가되기 전까지는 39 가지 이상의 실패 모드가 있습니다! –

+0

@DanielWagner Huzzah ... – sdasdadas

+0

@DanielWagner 업데이트 : 최대 약 15 분입니다 ... – sdasdadas

관련 문제