better noise-function

This commit is contained in:
Nicole Dresselhaus 2014-05-07 10:12:18 +02:00
parent 7dd79f095c
commit a91aad5daa
No known key found for this signature in database
GPG Key ID: BC16D887851A1A80
3 changed files with 15 additions and 12 deletions

View File

@ -133,7 +133,8 @@ void main()
float i2 = (1-gl_TessCoord.z)*gl_TessCoord.z * length(cross(tcNormal[2],tessNormal)); float i2 = (1-gl_TessCoord.z)*gl_TessCoord.z * length(cross(tcNormal[2],tessNormal));
float standout = i0+i1+i2; float standout = i0+i1+i2;
tePosition = tePosition+tessNormal*standout; tePosition = tePosition+tessNormal*standout;
tePosition = tePosition+0.05*snoise(tePosition); vec3 tmp = tePosition+1*snoise(tePosition/20);
tePosition = vec3(tePosition.x, tmp.y, tePosition.z);
gl_Position = ProjectionMatrix * ViewMatrix * vec4(tePosition, 1); gl_Position = ProjectionMatrix * ViewMatrix * vec4(tePosition, 1);
fogDist = gl_Position.z; fogDist = gl_Position.z;

View File

@ -23,6 +23,7 @@ import Render.Misc
import Render.Types import Render.Types
import Graphics.GLUtil.BufferObjects (makeBuffer) import Graphics.GLUtil.BufferObjects (makeBuffer)
import Importer.IQM.Parser import Importer.IQM.Parser
import Importer.IQM.Types
mapVertexShaderFile :: String mapVertexShaderFile :: String
mapVertexShaderFile = "shaders/map/vertex.shader" mapVertexShaderFile = "shaders/map/vertex.shader"
@ -34,9 +35,9 @@ mapFragmentShaderFile :: String
mapFragmentShaderFile = "shaders/map/fragment.shader" mapFragmentShaderFile = "shaders/map/fragment.shader"
objectVertexShaderFile :: String objectVertexShaderFile :: String
objectVertexShaderFile = "shaders/objects/vertex.shader" objectVertexShaderFile = "shaders/mapobjects/vertex.shader"
objectFragmentShaderFile :: String objectFragmentShaderFile :: String
objectFragmentShaderFile = "shaders/objects/fragment.shader" objectFragmentShaderFile = "shaders/mapobjects/fragment.shader"
uiVertexShaderFile :: String uiVertexShaderFile :: String
uiVertexShaderFile = "shaders/ui/vertex.shader" uiVertexShaderFile = "shaders/ui/vertex.shader"
@ -122,7 +123,7 @@ initMapShader tessFac (buf, vertDes) = do
testobj <- parseIQM "sample.iqm" testobj <- parseIQM "sample.iqm"
let let
objs = [GLObject testobj (Coord3D 0 10 0)] objs = [MapObject testobj (L.V3 0 10 0) (MapObjectState ())]
! vertexSource' <- B.readFile objectVertexShaderFile ! vertexSource' <- B.readFile objectVertexShaderFile
! fragmentSource' <- B.readFile objectFragmentShaderFile ! fragmentSource' <- B.readFile objectFragmentShaderFile
@ -288,9 +289,15 @@ renderOverview = do
checkError "draw map" checkError "draw map"
-} -}
-- | renders an IQM-Model at Position with scaling
renderIQM :: IQM -> L.V3 CFloat -> L.V3 CFloat -> IO ()
renderIQM m p@(L.V3 x y z) s@(L.V3 sx sy sz) = do
return ()
renderObject :: MapObject -> IO () renderObject :: MapObject -> IO ()
renderObject (MapObject model (L.V3 x y z) _{-state-}) = renderObject (MapObject model pos@(L.V3 x y z) _{-state-}) =
undefined renderIQM model pos (L.V3 1 1 1)
render :: Pioneers () render :: Pioneers ()
@ -390,7 +397,7 @@ render = do
---- RENDER MAPOBJECTS -------------------------------------------- ---- RENDER MAPOBJECTS --------------------------------------------
currentProgram $= Just (state ^. gl.glMap.objectsProgram) currentProgram $= Just (state ^. gl.glMap.objectProgram)
mapM_ renderObject (state ^. gl.glMap.mapObjects) mapM_ renderObject (state ^. gl.glMap.mapObjects)

View File

@ -118,11 +118,6 @@ data GLMapState = GLMapState
, _overviewTexture :: !TextureObject , _overviewTexture :: !TextureObject
, _mapTextures :: ![TextureObject] --TODO: Fix size on list? , _mapTextures :: ![TextureObject] --TODO: Fix size on list?
, _objectProgram :: !GL.Program , _objectProgram :: !GL.Program
, _mapObjects :: ![GLObject]
}
data GLObject = GLObject IQM (Coord3D Double)
, _objectsProgram :: !GL.Program
, _mapObjects :: ![MapObject] , _mapObjects :: ![MapObject]
} }