fette cubemap fehler -->doch nicht mehr, aber anderes pro
Übersicht

nitroexBetreff: fette cubemap fehler -->doch nicht mehr, aber anderes pro |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Servus!
so, bin gerade dabei, ein bisschen mit cubemapping und so rumzuspielen, hat bis jez auch immer geklappt. doch zu zeit hab ich ein ding, da funktionier das einfach nicht! cih habe aber keinen plan warum, und bis jez habe ich fast alle meiner fehler gefunden. ab hier nicht. hier mal ein fehlerhaftes bild: ![]() hier ist mal der quellcode: Code: [AUSKLAPPEN] width = 1280 height = 1024 Graphics3D width,height,32,1 SetBuffer BackBuffer() Global TFPS = 0 Global FPS = 0 Global TimerFPS = 0 Global gamespeed = 0 Global startzeit = 0 Global grav# = 0 Global underwater = 0 Global waterdirection = 1 Global watersize = 512 Global wdb Type entity Field ent End Type AmbientLight 200,200,200 fk=LoadImage("fk.png") Global piv = CreatePivot() EntityType piv,1 EntityRadius piv,5,5 Global main_cam = CreateCamera() CameraRange main_cam,0.1,1000000 EntityParent main_cam,piv MoveEntity piv,400,106,400 CameraFogMode main_cam,1 CameraFogColor main_cam,100,200,255 CameraFogRange main_cam,50,1000 Global FXCamera = CreateCamera() CameraClsMode FXCamera,False,True CameraProjMode FXCamera,0 CameraViewport FXCamera,0,0,watersize,watersize light1 = CreateLight(2) MoveEntity light1,500,200,500 sky = Loadskybox() ScaleEntity sky,0.2,0.2,0.2 player=CreatePivot() teapot = LoadMesh("tank.x",player) EntityColor teapot,76,76,76 ScaleEntity teapot,0.01,0.01,0.01 MoveEntity player,0,100,5 EntityType player,3 EntityRadius player,0 rost1_tex = LoadTexture("oldrust.jpg") rost2_tex = LoadTexture("oldrust2.jpg") mrost2_tex = LoadTexture("rost1_mask.jpg",2) Global WaterMapTexture= CreateTexture(512,512,128+256) Global water=SU_CreatePlane(0,0,1024,1024,40) Type Vertices Field x# Field y# Field z# End Type surf=GetSurface(water,1) Dim Vertex.Vertices(CountVertices(surf)) For i=0 To CountVertices(surf)-1 Vertex(i) = New Vertices Vertex(i)\x#=VertexX#(surf,i) Vertex(i)\y#=VertexY#(surf,i) Vertex(i)\z#=VertexZ#(surf,i) Next ScaleEntity water,4,1,4 MoveEntity water,-100,20,-100 plane = LoadTerrain("heightmap.png") ScaleEntity plane,8,80,8 PointEntity piv,water watertex = LoadTexture("waves.png") ;TextureBlend watertex,5 EntityTexture water,WaterMapTexture ;EntityTexture water,watertex EntityType plane,4 TerrainDetail plane,5000,1 planedetail = LoadTexture("detail.bmp") TextureBlend planedetail,5 EntityTexture plane,planedetail,0,0 planecolor = LoadTexture("colormap_sh.bmp") EntityTexture plane,planecolor,0,1 ScaleTexture planecolor,512,512 MoveEntity plane,-100,0,-100 EntityType water,2 EntityColor water,100,200,255 EntityColor water,512,512,512 EntityAlpha water,0.7 EntityFX water,1 ;AddEntity(water) ;HideEntity plane ;HWMultiTex 1 mxs#=0 mys#=0 eet$ = "Nein!" ;Collisions 1,2,2,2 ;Collisions 3,2,2,2 Collisions 1,4,2,2 HideEntity teapot Repeat ;############################################################################################################# oldy=EntityY(piv) mxs#=mxs#+(MouseXSpeed()/5.0) mys#=mys#+(MouseYSpeed()/5.0) RotateEntity piv,mys#,-mxs#,0 MoveMouse width/2,height/2 If KeyDown(200) Then TurnEntity piv,5,0,0 If KeyDown(208) Then TurnEntity piv,-5,0,0 If Not KeyDown(29) Then If KeyDown(17) Then MoveEntity piv,0,0,1 If KeyDown(31) Then MoveEntity piv,0,0,-1 Else If KeyDown(17) Then MoveEntity piv,0,0,5 If KeyDown(31) Then MoveEntity piv,0,0,-5 End If If Not KeyDown(29) Then If KeyDown(30) Then MoveEntity piv,1,0,0 If KeyDown(32) Then MoveEntity piv,-1,0,0 Else If KeyDown(30) Then MoveEntity piv,5,0,0 If KeyDown(32) Then MoveEntity piv,-5,0,0 End If If KeyDown(203) Then TurnEntity piv,0,5,0 If KeyDown(205) Then TurnEntity piv,0,-5,0 If CountCollisions(piv) Then eet$="Jupp!" Else eet$ = "Nö!" End If If CountCollisions(piv) ;PositionEntity piv,EntityX(piv),oldy,EntityZ(piv) grav#=0 EndIf If KeyDown(57) grav# = 0.8 Else grav# = grav#-0.01 EndIf ;TranslateEntity piv,0,grav#,0 ;is_underwater() renderwater() PositionEntity sky,EntityX(piv),EntityY(piv),EntityZ(piv) RenderWorld() UpdateWorld() ShowFPS() DrawImage fk,width/2-25,height/2-25 Text(0,10,"Player-Kollision: "+eet$) Text(0,20,"Water-Direction: "+ waterdirection ) Text(0,30,"wdb: "+wdb) Flip 1 Until KeyHit(1) ;#################################################################################################### Function SU_CreatePlane(x_pos,z_pos,xsize#,zsize#,segs = 20) Local mesh = 0 Local surface = 0 Local xstep# = 0 Local zstep# = 0 Local v[6] xstep = xsize/segs zstep = zsize/segs mesh = CreateMesh() surface = CreateSurface(mesh) For x = 0 To segs For z = 0 To segs v[0] = AddVertex(surface,x*xstep,1,z*zstep,0,1) v[1] = AddVertex(surface,x*xstep,1,(z*zstep)+zstep,0,0) v[2] = AddVertex(surface,(x*xstep)+xstep,1,(z*zstep)+zstep,1,0) v[3] = AddVertex(surface,(x*xstep)+xstep,1,(z*zstep)+zstep,1,0) v[4] = AddVertex(surface,(x*xstep)+xstep,1,z*zstep,1,1) v[5] = AddVertex(surface,x*xstep,1,z*zstep,0,1) AddTriangle(surface,v[0],v[1],v[2]) AddTriangle(surface,v[3],v[4],v[5]) Next Next UpdateNormals(mesh) Return mesh End Function Function ShowFPS () TFPS = TFPS + 1 If MilliSecs () - TimerFPS => 1000 Then TimerFPS = MilliSecs () FPS = TFPS TFPS = 0 End If Text (0,0,"Aktuelle FPS Zahl: "+FPS) End Function Function LoadSkyBox(parent=0 ) m=CreateMesh(parent) ;front face b=LoadBrush( "sky/negz.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0 AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;right face b=LoadBrush( "sky/negx.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0 AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;back face b=LoadBrush( "sky/posz.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0 AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;left face b=LoadBrush( "sky/posx.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0 AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;top face b=LoadBrush( "sky/posy.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0 AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;bottom face b=LoadBrush( "sky/negy.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,-1,-1,1,0:AddVertex s,+1,-1,-1,1,1 AddVertex s,+1,-1,+1,0,1:AddVertex s,-1,-1,+1,0,0 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ScaleMesh m,500,500,500 EntityOrder m,1 FlipMesh m EntityFX m,1 Return m End Function Function RenderWater() HideEntities() CameraProjMode main_cam,0 CameraProjMode FXCamera,1 wdb=1-wdb ;flip water if under it If underwater=0 If waterdirection=-1 FlipMesh water EntityAlpha water,.7 EntityColor water,255,255,255 EndIf waterdirection=1 PositionEntity FXCamera,EntityX(piv),EntityY(water)-2,EntityZ(piv) If wdb ;do left view SetCubeFace WaterMapTexture,0 RotateEntity FXCamera,0,90,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) ;do forward view SetCubeFace WaterMapTexture,1 RotateEntity FXCamera,0,0,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) Else ;do right view SetCubeFace WaterMapTexture,2 RotateEntity FXCamera,0,-90,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) ;do backward view SetCubeFace WaterMapTexture,3 RotateEntity FXCamera,0,180,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) EndIf ;do up view SetCubeFace WaterMapTexture,4 RotateEntity FXCamera,-90,0,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) Else If waterdirection=1 FlipMesh water EntityAlpha water,1 EntityColor water,155,200,255 EndIf waterdirection=-1 PositionEntity FXCamera,-EntityX(piv),EntityY(piv)-2,EntityZ(piv) If wdb ;do left view SetCubeFace WaterMapTexture,0 RotateEntity FXCamera,0,-90,180 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) ;do forward view SetCubeFace WaterMapTexture,1 RotateEntity FXCamera,0,0,180 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) Else ;do right view SetCubeFace WaterMapTexture,2 RotateEntity FXCamera,0,90,180 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) ;do backward view SetCubeFace WaterMapTexture,3 RotateEntity FXCamera,0,180,180 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) EndIf ;do down view SetCubeFace WaterMapTexture,5 RotateEntity FXCamera,-90,0,180 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) EndIf CameraProjMode FXCamera,0 CameraProjMode main_cam,1 ShowEntities() s=GetSurface(water,1) For i=0 To CountVertices(s)-1 Freq#=MilliSecs()/4 Vertex(i)\y#=Sin(freq+Vertex(i)\x#*500+Vertex(i)\z#*300)*1.2 VertexCoords s,i,Vertex(i)\x#,-Vertex(i)\y#,Vertex(i)\z# Next If EntityY(main_cam,1)<EntityY(water) underwater=1 Else underwater=0 If underwater CameraFogColor main_cam,50,100,155 t#=MilliSecs()/6 ScaleEntity main_cam,1+Cos(t)*0.04,1+Sin(t)*0.04,1+Cos(t)*0.02 CameraFogRange main_cam,0,200+Sin(MilliSecs()*0.05)*60 TurnEntity piv,0,0,Sin(t)*2 Else CameraFogColor main_cam,100,200,255 ScaleEntity main_cam,1,1,1 CameraFogRange main_cam,100,1000 EndIf End Function Function is_underwater() If EntityY(piv)<=EntityY(water) Then underwater = 1 Else underwater = 0 End If End Function Function HideEntities() For e.entity=Each entity HideEntity e\ent Next End Function ;---------------------------------------------------------------------------------- Function ShowEntities() For e.entity=Each entity ShowEntity e\ent Next End Function Function AddEntity(ent) e.entity=New entity e\ent=ent End Function die art des cubemappings ist aus dem baispiel "cubewater" von den samples übernommen, funzt aber trotzdem nicht. ich habe bestimmt irgendwelche vorbestimmten richtlinien nicht beachtet oder so. UND JEZ ZUM ALLER KRASSESTEN: DIE TEXTUREN, DIE IHR DI SEHT, WO EIGENTLCIH DIE SPIEGELUNGEN SEIEN SOLLEN, SIND GARNICHT IN DEM PROGRAMM, NOCH NICHTMAL IM ORDER. Als ich den PC hochgefahren habe, dann das ding ausgeführt habe,sah alles so schwarz-bunt-weis aus, wie deas eine stäck im screen. DANN: hab ich mal ein anderes spiel, das cubemap verwendet, ausprobiert. da hats gefunzt. dann habe ich nochmal meines gestartet UND SIEHE DA --> die texturen vom vorspiel waren auf einmal mit dabei, hier z.B. gelbes und heller himmel. anscheinend haben sich die anderen im speicher festgesetzt oder so .... KANN MIR DA JEMAND HELFEN? WICHTIG! BITTE mfg :: nitroex, der diesmal auf hilfe hofft |
||
nitroexBetreff: hat sich fast erledigt: |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so, den haupt-fehler habe ich gefunden, ich hatte watersize statt watermapsize geschrieben, naja, dummer fehler ...!
erstmal: ich frage ich, warum es auf eine frage, die man(ICH) hier stell(t/e), keine/kaum resonanz gibt. liegt das an meiner person, ist es zuviel aufwandt, oder ist es einfach nur eine dumme frage oder zu wenig zeit? bite sagen, was und warum. ich hoffe, ich habe niemanden beleidigt ... allerdings besteht noch ein b3d-problem: die cube-map-bestandteile sind nicht richtig angeprdnet, ich finde aber keine lsg! en ich den gleichen code (des cubemappings selber) woanders anwende, dann funzt es. d.h., dass ich wahrscheinlich irgendwo bei den kameras einen fehler hab. aber wo? bild: ![]() hier der code: Code: [AUSKLAPPEN] width = 1280 height = 1024 Graphics3D width,height,32,1 ClearTextureFilters SetBuffer BackBuffer() Global TFPS = 0 Global FPS = 0 Global TimerFPS = 0 Global gamespeed = 0 Global startzeit = 0 Global grav# = 0 Global underwater = 0 Global waterdirection = 1 Global WaterMapSize = 512 Global wdb Type entity Field ent End Type AmbientLight 200,200,200 fk=LoadImage("fk.png") Global piv = CreatePivot() EntityType piv,1 EntityRadius piv,5,5 Global main_cam = CreateCamera() CameraRange main_cam,0.1,1000000 EntityParent main_cam,piv MoveEntity piv,400,105,400 CameraFogMode main_cam,0 CameraFogColor main_cam,100,200,255 CameraFogRange main_cam,50,1000 CameraProjMode main_cam,2 Global FXCamera = CreateCamera() CameraClsMode FXCamera,False,True CameraProjMode FXCamera,0 CameraRange FXCamera,0.1,10000 ;CameraViewport FXCamera,0,0,WaterMapSize,WaterMapSize snd = Load3DSound("Duality.mp3") CreateListener piv ;EmitSound snd,piv light1 = CreateLight(2) MoveEntity light1,500,200,500 sky = CreateSphere(30);Loadskybox() skytex=loadtexture("sky1.png") flipmesh sky ScaleEntity sky,5000,5000,5000 EntityTexture sky,skytex ;EntityColor sky,255,200,0 ;ScaleEntity sky,0.1,0.1,0.1 player=CreatePivot() teapot = LoadMesh("tank.x",player) EntityColor teapot,76,76,76 ScaleEntity teapot,0.01,0.01,0.01 MoveEntity player,0,100,5 EntityType player,3 EntityRadius player,0 rost1_tex = LoadTexture("oldrust.jpg") rost2_tex = LoadTexture("oldrust2.jpg") mrost2_tex = LoadTexture("rost1_mask.jpg",2) Global WaterTexture= CreateTexture(512,512,128+256) Global water=SU_CreatePlane(0,0,1024,1024,40) Type Vertices Field x# Field y# Field z# End Type surf=GetSurface(water,1) Dim Vertex.Vertices(CountVertices(surf)) For i=0 To CountVertices(surf)-1 Vertex(i) = New Vertices Vertex(i)\x#=VertexX#(surf,i) Vertex(i)\y#=VertexY#(surf,i) Vertex(i)\z#=VertexZ#(surf,i) Next ScaleEntity water,4,1,4 MoveEntity water,-100,20,-100 plane = LoadTerrain("heightmap_cool.bmp") ScaleEntity plane,8,80,8 PointEntity piv,water wavetex = LoadTexture("waves.png") watertex = LoadTexture("wasser.jpg") TextureBlend wavetex,5 EntityTexture water,WaterTexture,0,1 EntityTexture water,wavetex,0,0 ;EntityTexture water,watertex,0,1 EntityColor water,50,100,150 EntityType plane,4 TerrainDetail plane,5000,1 planedetail = LoadTexture("detail.bmp") TextureBlend planedetail,5 EntityTexture plane,planedetail,0,0 planecolor = LoadTexture("colormap_sh.bmp") EntityTexture plane,planecolor,0,1 ScaleTexture planecolor,512,512 MoveEntity plane,-100,0,-100 EntityType water,2 EntityColor water,100,200,255 EntityColor water,512,512,512 EntityAlpha water,0.7 EntityFX water,1 ;AddEntity(water) ;HideEntity plane HWMultiTex 1 mxs#=0 mys#=0 eet$ = "Nein!" ;Collisions 1,2,2,2 ;Collisions 3,2,2,2 Collisions 1,4,2,2 ;HideEntity teapot Repeat ;############################################################################################################# oldy=EntityY(piv) mxs#=mxs#+(MouseXSpeed()/5.0) mys#=mys#+(MouseYSpeed()/5.0) RotateEntity piv,mys#,-mxs#,0 MoveMouse width/2,height/2 If KeyDown(200) Then TurnEntity piv,5,0,0 If KeyDown(208) Then TurnEntity piv,-5,0,0 If Not KeyDown(29) Then If KeyDown(17) Then MoveEntity piv,0,0,1 If KeyDown(31) Then MoveEntity piv,0,0,-1 Else If KeyDown(17) Then MoveEntity piv,0,0,5 If KeyDown(31) Then MoveEntity piv,0,0,-5 End If If Not KeyDown(29) Then If KeyDown(30) Then MoveEntity piv,1,0,0 If KeyDown(32) Then MoveEntity piv,-1,0,0 Else If KeyDown(30) Then MoveEntity piv,5,0,0 If KeyDown(32) Then MoveEntity piv,-5,0,0 End If If KeyDown(203) Then TurnEntity piv,0,-5,0 If KeyDown(205) Then TurnEntity piv,0,5,0 If KeyHit(35) Then HideEntity plane If CountCollisions(piv) Then eet$="Jupp!" Else eet$ = "Nö!" End If If CountCollisions(piv) ;PositionEntity piv,EntityX(piv),oldy,EntityZ(piv) grav#=0 EndIf If KeyDown(57) grav# = 0.8 Else grav# = grav#-0.01 EndIf ;TranslateEntity piv,0,grav#,0 ;is_underwater() renderwater() PositionEntity sky,EntityX(piv),EntityY(piv),EntityZ(piv) RenderWorld() UpdateWorld() ShowFPS() DrawImage fk,width/2-25,height/2-25 Text(0,10,"Player-Kollision: "+eet$) Text(0,20,"Water-Direction: "+ waterdirection ) Text(0,30,"wdb: "+wdb) Text(0,40,"Water-under: "+ underwater ) Flip 0 Until KeyHit(1) ;#################################################################################################### Function SU_CreatePlane(x_pos,z_pos,xsize#,zsize#,segs = 20) Local mesh = 0 Local surface = 0 Local xstep# = 0 Local zstep# = 0 Local v[6] xstep = xsize/segs zstep = zsize/segs mesh = CreateMesh() surface = CreateSurface(mesh) For x = 0 To segs For z = 0 To segs v[0] = AddVertex(surface,x*xstep,1,z*zstep,0,1) v[1] = AddVertex(surface,x*xstep,1,(z*zstep)+zstep,0,0) v[2] = AddVertex(surface,(x*xstep)+xstep,1,(z*zstep)+zstep,1,0) v[3] = AddVertex(surface,(x*xstep)+xstep,1,(z*zstep)+zstep,1,0) v[4] = AddVertex(surface,(x*xstep)+xstep,1,z*zstep,1,1) v[5] = AddVertex(surface,x*xstep,1,z*zstep,0,1) AddTriangle(surface,v[0],v[1],v[2]) AddTriangle(surface,v[3],v[4],v[5]) Next Next UpdateNormals(mesh) Return mesh End Function Function ShowFPS () TFPS = TFPS + 1 If MilliSecs () - TimerFPS => 1000 Then TimerFPS = MilliSecs () FPS = TFPS TFPS = 0 End If Text (0,0,"Aktuelle FPS Zahl: "+FPS) End Function Function LoadSkyBox(parent=0 ) m=CreateMesh(parent) ;front face b=LoadBrush( "sky/negz.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0 AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;right face b=LoadBrush( "sky/negx.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0 AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;back face b=LoadBrush( "sky/posz.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0 AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;left face b=LoadBrush( "sky/posx.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0 AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;top face b=LoadBrush( "sky/posy.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0 AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;bottom face b=LoadBrush( "sky/negy.jpg",49 ) s=CreateSurface( m,b ) AddVertex s,-1,-1,-1,1,0:AddVertex s,+1,-1,-1,1,1 AddVertex s,+1,-1,+1,0,1:AddVertex s,-1,-1,+1,0,0 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ScaleMesh m,500,500,500 EntityOrder m,1 FlipMesh m EntityFX m,1 Return m End Function Function RenderWater() ;flip water if under it If underwater=0 If waterdirection=-1 FlipMesh water EntityAlpha water,.5 EntityColor water,255,255,255 EndIf waterdirection=1 Else If waterdirection=1 FlipMesh water EntityAlpha water,0.7 EntityColor water,155,200,255 EndIf waterdirection=-1 End if UpdateCubemap(WaterTexture,FXCamera,water) s=GetSurface(water,1) For i=0 To CountVertices(s)-1 Freq#=MilliSecs()/4 Vertex(i)\y#=Sin(freq+Vertex(i)\x#*500+Vertex(i)\z#*300)*5 VertexCoords s,i,Vertex(i)\x#,-Vertex(i)\y#,Vertex(i)\z# Next ;If EntityY(main_cam)<EntityY(water) underwater=1 Else underwater=0 is_underwater; If underwater CameraFogColor main_cam,50,100,155 t#=MilliSecs()/4 ScaleEntity main_cam,1+Cos(t)*0.04,1+Sin(t)*0.04,1+Cos(t)*0.02 CameraFogRange main_cam,0,200+Sin(MilliSecs()*0.05)*60 TurnEntity piv,0,0,Sin(t)*2 CameraFogMode main_cam,1 Else CameraFogColor main_cam,100,200,255 ScaleEntity main_cam,1,1,1 CameraFogRange main_cam,100,1000 CameraFogMode main_cam,0 EndIf End Function Function is_underwater() If EntityY(piv)<=EntityY(water) Then underwater = 1 Else underwater = 0 End If End Function Function HideEntities() For e.entity=Each entity HideEntity e\ent Next End Function ;---------------------------------------------------------------------------------- Function ShowEntities() For e.entity=Each entity ShowEntity e\ent Next End Function Function AddEntity(ent) e.entity=New entity e\ent=ent End Function Function UpdateCubemap(watermaptexture,fxcam,entity) CameraProjMode main_cam,0 CameraProjMode fxcam,1 PositionEntity fxcam,EntityX(piv),EntityY(entity)-(EntityY(piv)-EntityY(entity)),EntityZ(piv) HideEntity entity If underwater=0 then SetCubeFace watermaptexture,0 RotateEntity fxcam,0,90,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) SetCubeFace WaterMapTexture,1 RotateEntity fxcam,0,0,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) SetCubeFace WaterMapTexture,2 RotateEntity fxcam,0,-90,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) SetCubeFace WaterMapTexture,3 RotateEntity fxcam,0,180,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) SetCubeFace WaterMapTexture,4 RotateEntity fxcam,-90,0,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) Else SetCubeFace watermaptexture,0 RotateEntity fxcam,0,90,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) SetCubeFace WaterMapTexture,1 RotateEntity fxcam,0,0,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) SetCubeFace WaterMapTexture,2 RotateEntity fxcam,0,-90,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) SetCubeFace WaterMapTexture,3 RotateEntity fxcam,0,180,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) SetCubeFace WaterMapTexture,5 RotateEntity fxcam,90,0,0 RenderWorld CopyRect 0,0,WaterMapSize,WaterMapSize,0,0,BackBuffer(),TextureBuffer(WaterMapTexture) End if ShowEntity entity CameraProjMode main_cam,1 CameraProjMode fxcam,0 End Function wär echt gut, wenn mir diesmal wirklich jemand helfen könnte. wer dazu mal das projekt an sich kenötigt (gezippt), soll mal bescheid sagen, obwohl das kaum der fall sein wird, oder? mfg :: nitroex, der gerne mal was (dummes?) fragt PS: ich schreibe nur klein, weil es mir zu anstrengend ist, immer shift zu drücken |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
HM,
Es gibt hier Regeln zum Posten, 1. Bete zum Großen BlitzGott, Nein, LOL Denkst du, jemand hat lust, deinen Ganzen Source nach nem Fehler zu durchsuchen? Denkst du, falls jemand schon lust hat, er versucht das ganze, ohne Medien, wo er drinne herumdoctern kann? Ich glaube, du hast einfach, die Drehung der Cube Cam geändert! --> falsche anordnung des Cube bilds. Wer nach einen Tag seinen Fehler gefunden hat, sollte nciht posten, sondern einfach das nächstemal drüber schlafen. |
||
between angels and insects |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vor allem beschäftigen sich nicht so viele mit CubeMaps da man sie ausser für Skybox eh kaum nutzt. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du nutzt Cubemaps für die Skybox? | ||
between angels and insects |
![]() |
bruZard |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Jan_: Ich auch ![]() |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich sehe noch nciht wirklich den Vorteil drinne?!
Erklärt mal, was das für einen Vorteil bringt? |
||
between angels and insects |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Skybox als Cubemap machen.
Plain vor die Cam mit Entityorder damits zuerst gezeichnet wird. Plain mit Cubemap texturieren. Gibt keine probleme mehr und hat auch keine "distanzprobleme" etc ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja und funktioniert nur auf neueren karten ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja wenn du ein bisschen was an textur quali und so hast erzwingt das ohnehin eine GF2 und mehr ( also 64mb grafikspeicher ), womit sich das problem von selbst löst. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
nitroex |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo
zu menge: tut mir leid, daran hab ich nich geacht. ich dachte eigentlich, dass nur die cubemapping-funktion wichtig ist, und habe den rest nur so als content mit zugegeben. zu media: ausserdem hab ich ja geschrieben, dass ich das alles mal uploaden würde, wenn sich das denn mal wirklich jemand angucken möchte. aber nur wenn wirklich! zur zeit: ich forsche an dem ding jez schon den 5. tag hernum, und hab schon viel drüber geschlafen (hab einmal von geträumt und war im traum total verzerrt ![]() zu cubemapping für sky: geht wirklich gut, nuze ich auch. einziges problem ist mit camerafog, aber das hab ich auch scho hingegriggd @Jan_: ich habe zwar schon mal alle kamerastellungen verändert, funzt aber trotzdem nicht .. trobsdem danke mfg :: nitroex, der sich nochma entschüldigen tutet |
||
INpac |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie oft hatten wir das Thema SkyCubemap-Box denn schon ? ![]() Dreamora hat Folgendes geschrieben: Plain vor die Cam mit Entityorder damits zuerst gezeichnet wird. nein, sie muss Order 1 haben, damit sie ZUERST gezeichnet wird ... Nitro: für Wassercubemmaping guck dir ma den FAQentry auf blitz-max.de dazu an .. |
||
![]() |
Wild-Storm |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hatte mal das selbe problem, du musst die camerarange deiner fxcam für die cubemap höher stellen. sonst gibts solche probleme
edit: Zitat: Global main_cam = CreateCamera()
CameraRange main_cam,0.1,1000000 EntityParent main_cam,piv MoveEntity piv,400,105,400 CameraFogMode main_cam,0 CameraFogColor main_cam,100,200,255 CameraFogRange main_cam,50,1000 CameraProjMode main_cam,2 Global FXCamera = CreateCamera() CameraClsMode FXCamera,False,True CameraProjMode FXCamera,0 CameraRange FXCamera,0.1,10000 ;<-ÄNDERN!!! ;CameraViewport FXCamera,0,0,WaterMapSize,WaterMapSize edit2: ich würd keine 0.1 werte bei der camrange benutzen, bringt nix. mach 1,100000 oder was auch immer |
||
Visit http://www.next-dimension.org
------------------------------------------------- Freeware Modelle, Texturen & Sounds: http://www.blitzforum.de/forum...hp?t=12875 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group