Cubemapping
Übersicht

![]() |
GoldiniBetreff: Cubemapping |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Ich brauch mal Hilfe... hier das problem: ![]() hier der Code: [AUSKLAPPEN] Global watermesh=LoadMesh("100x100.b3d") RotateMesh watermesh,90,0,0 : RotateEntity watermesh,-90,0,0 PositionEntity watermesh,0,0,15 ScaleEntity watermesh,50,50,10 EntityAlpha watermesh,.7 Global surface=CountSurfaces(watermesh) surface=GetSurface(watermesh,1) Global VertexCount=CountVertices(surface) Dim Vertex.Vertices(VertexCount) For A=0 To VertexCount-1 Vertex(a) = New Vertices Vertex(a)\x#=VertexX#(surface,a) Vertex(a)\y#=VertexY#(surface,a) Vertex(a)\z#=VertexZ#(surface,a) Next watertexture=LoadAnimTexture("wateranim.jpg",256,124,124,0,25) EntityTexture watermesh,watertexture,0,1 ScaleTexture watertexture,.01,.01 EntityShininess watermesh,0.2 Global cube_cam=CreateCamera() Global tex=CreateTexture(256,256,1+128+256) EntityTexture watermesh,tex,0,1 while not keyhit(1) d=d+1 If d=4 Then UpdateCubemap(tex,cube_cam,watermesh) : d=0 EntityTexture watermesh,watertexture,frame,0 EntityTexture watermesh,tex,0,1 frame=frame+1 If frame=22 Then frame=0 UpdateWater() RenderWorld UpdateWorld Flip Wend Function UpdateCubemap(tex,camera,entity) tex_sz=TextureWidth(tex) ShowEntity camera HideEntity entity PositionEntity camera,EntityX#(entity),EntityY#(entity)-100,EntityZ#(entity) CameraClsMode camera,False,True CameraViewport camera,0,0,tex_sz,tex_sz SetCubeFace tex,4 RotateEntity camera,-90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ShowEntity entity HideEntity camera End Function Function UpdateWater() For a=0 To VertexCount-1 Freq#=MilliSecs()/10 Vertex(a)\z#=Sin(freq+Vertex(a)\x#*300+Vertex(a)\y#*400)*0.6 VertexCoords surface,a,Vertex(a)\x#,Vertex(a)\y#,Vertex(a)\z# Next UpdateNormals watermesh End Function könnt ihr mir helfen??? Mfg |
||
Mit diesen Zeilen danke ich einer Person, die mich für so wichtig hält, dass sie sogar einen Club nach mir benannt hat!
Danke! ![]() |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Guck dir mal bitte das Beispiel in der OH an! Irgendwas scheinst du falsch verstanden zu haben, Cubemapping funktioniert indem man auf jede Cubeface eine Kamera perspektive rendert, woraus dann eine Spiegelung berechnet werden kann. MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Goldini |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab mir die OH angesehen und mein Mesh hat nur eine steite und zwar
oben!!! |
||
Mit diesen Zeilen danke ich einer Person, die mich für so wichtig hält, dass sie sogar einen Club nach mir benannt hat!
Danke! ![]() |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
darum gehts nicht, es geht darum, dass für eine realistische spiegelung alle 6 bilder benötigt werden, um daraus dann das leztendliche spiegelbild zu berechnen!
MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Goldini |
![]() Antworten mit Zitat ![]() |
---|---|---|
Neues Problem:
![]() Neuer UpdateCubemap Code: [AUSKLAPPEN] Function UpdateCubemap(tex,camera,entity) tex_sz=TextureWidth(tex) ShowEntity camera HideEntity entity PositionEntity camera,EntityX#(entity),EntityY#(entity)-100,EntityZ#(entity) CAMERACLSMODE camera,FALSE,TRUE CAMERAVIEWPORT camera,0,0,tex_sz,tex_sz SETCUBEFACE tex,0 ROTATEENTITY camera,0,90,0 RENDERWORLD COPYRECT 0,0,tex_sz,tex_sz,0,0,BACKBUFFER(),TEXTUREBUFFER(tex) SETCUBEFACE tex,1 ROTATEENTITY camera,0,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SetCubeFace tex,2 RotateEntity camera,0,-90,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SetCubeFace tex,3 RotateEntity camera,0,180,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SetCubeFace tex,4 RotateEntity camera,-90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SetCubeFace tex,5 RotateEntity camera,90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ShowEntity entity HideEntity camera End Function |
||
Mit diesen Zeilen danke ich einer Person, die mich für so wichtig hält, dass sie sogar einen Club nach mir benannt hat!
Danke! ![]() |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
und was ist daran das Problem? Sorry, aber ich erkenne auf dem Screen weder das Wasser, noch die Objekte die gespiegelt werden sollen... | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Goldini |
![]() Antworten mit Zitat ![]() |
---|---|---|
So jetzt ist es UNÜBERSHEBAR! ![]() ![]() |
||
Mit diesen Zeilen danke ich einer Person, die mich für so wichtig hält, dass sie sogar einen Club nach mir benannt hat!
Danke! ![]() |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
das problem hatte ich auch schonmal ^^
bevor du mich fragst wie ich es gelöst hab: habe ich nicht... hab nochmal neu angefangen, dann hats gefunzt ![]() poste mal den ganzen code bitte... zum cubemapping gehört nicht nur eine function am ende des codes MfG. |
||
![]() |
Goldini |
![]() Antworten mit Zitat ![]() |
---|---|---|
Äh das mit dem ganzen Code halt ich für nicht so ne gute Idee (das sind 945 Zeilen) | ||
Mit diesen Zeilen danke ich einer Person, die mich für so wichtig hält, dass sie sogar einen Club nach mir benannt hat!
Danke! ![]() |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Filter alles raus was mit Cubemapping zu tun haben könnte....
Kamera CubeKamera CubemapSettings Function UpdateCubemap Steuerung des Spiels dann poste das hier rein ![]() |
||
![]() |
Goldini |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK. dann mal los hier ist der gefilterte Code: [AUSKLAPPEN] Global camp=CreateSphere(2)PositionEntity camp,set_x,set_y,set_z EntityAlpha camp,0 EntityType camp,PLAYER EntityRadius camp,3 TurnEntity camp,0,set_yaw,0 Global cam=CreateCamera()PositionEntity cam,EntityX(camp),EntityY(camp)+7,EntityZ(camp) CameraClsColor cam,50,50,50 CameraRange cam,1,100000 CameraFogMode cam,1 CameraFogRange cam,1,5000 Global watermesh=LoadMesh("100x100.b3d") RotateMesh watermesh,90,0,0 : RotateEntity watermesh,-90,0,0 PositionEntity watermesh,0,0,15 ScaleEntity watermesh,50,50,10 EntityAlpha watermesh,.7 Global surface=CountSurfaces(watermesh) surface=GetSurface(watermesh,1) Global VertexCount=CountVertices(surface) Dim Vertex.Vertices(VertexCount) For A=0 To VertexCount-1 Vertex(a) = New Vertices Vertex(a)\x#=VertexX#(surface,a) Vertex(a)\y#=VertexY#(surface,a) Vertex(a)\z#=VertexZ#(surface,a) Next watertexture=LoadAnimTexture("wateranim.jpg",256,124,124,0,25) EntityTexture watermesh,watertexture,0,1 ScaleTexture watertexture,.01,.01 EntityShininess watermesh,0.2 Global cube_cam=CreateCamera() Global tex=CreateTexture(256,256,1+128+256) EntityTexture watermesh,tex,0,1 While Not KeyHit(1) EntityParent cam,camp If KeyDown(200) Then MoveEntity camp,0,0,1.5 If KeyDown(208) Then MoveEntity camp,0,0,-1.5 RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),0,0 RotateEntity camp,0,EntityYaw(camp)-MouseXSpeed(),0 MoveMouse 512,384 d=d+1 If d=6 Then UpdateCubemap(tex,cube_cam,watermesh) : d=0 EntityTexture watermesh,watertexture,frame,0 EntityTexture watermesh,tex,0,0 frame=frame+1 If frame=22 Then frame=0 UpdateWater() TurnEntity cam,0,EntityYaw(camp),0 ;CameraViewport cam,0,0,640,512 updateworld renderworld flip wend Function UpdateCubemap(tex,camera,entity) tex_sz=TextureWidth(tex) ShowEntity camera HideEntity entity PositionEntity camera,EntityX#(entity),EntityY#(entity)-100,EntityZ#(entity) CameraClsMode camera,False,True CameraViewport camera,0,0,tex_sz,tex_sz SetCubeFace tex,0 RotateEntity camera,0,90,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SETCUBEFACE tex,1 ROTATEENTITY camera,0,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SetCubeFace tex,2 RotateEntity camera,0,-90,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SetCubeFace tex,3 RotateEntity camera,0,180,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SetCubeFace tex,4 RotateEntity camera,-90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) SetCubeFace tex,5 RotateEntity camera,90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ShowEntity entity HideEntity camera End Function Function UpdateWater() ; Create a wave effect by moving all the vertices in the mesh up and down using Sin ; Try editing: ; Freq#=MilliSecs()/10 ; ^ The Bigger the divide, the slower the water moves ; Vertex(a)\z#=Sin(freq+Vertex(a)\x#*300+Vertex(a)\y#*400)*1.125 ; ^ The Bigger the Multiply The Higher ; the waves will be, lower = smaller For a=0 To VertexCount-1 Freq#=MilliSecs()/10 Vertex(a)\z#=Sin(freq+Vertex(a)\x#*300+Vertex(a)\y#*400)*0.6 VertexCoords surface,a,Vertex(a)\x#,Vertex(a)\y#,Vertex(a)\z# Next UpdateNormals watermesh End Function clearworld end So das war's |
||
Mit diesen Zeilen danke ich einer Person, die mich für so wichtig hält, dass sie sogar einen Club nach mir benannt hat!
Danke! ![]() |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group