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

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

nitroex

Betreff: fette cubemap fehler -->doch nicht mehr, aber anderes pro

BeitragMi, Nov 24, 2004 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
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:

user posted image

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
 

nitroex

Betreff: hat sich fast erledigt:

BeitragDo, Nov 25, 2004 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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: user posted image

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

BeitragFr, Nov 26, 2004 9:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Nov 26, 2004 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Nov 26, 2004 13:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Du nutzt Cubemaps für die Skybox?
between angels and insects

bruZard

BeitragFr, Nov 26, 2004 13:27
Antworten mit Zitat
Benutzer-Profile anzeigen
@Jan_: Ich auch Wink
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Jan_

Ehemaliger Admin

BeitragFr, Nov 26, 2004 13:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sehe noch nciht wirklich den Vorteil drinne?!
Erklärt mal, was das für einen Vorteil bringt?
between angels and insects
 

Dreamora

BeitragFr, Nov 26, 2004 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

OJay

BeitragFr, Nov 26, 2004 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
ja und funktioniert nur auf neueren karten Wink
 

Dreamora

BeitragFr, Nov 26, 2004 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Nov 26, 2004 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Wink )

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

BeitragFr, Nov 26, 2004 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie oft hatten wir das Thema SkyCubemap-Box denn schon ? Smile

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

BeitragFr, Nov 26, 2004 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group