raster

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

fliesenklaus

Betreff: raster

BeitragMi, Nov 12, 2008 17:21
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo
hab im forum einige anfragen über rasteranzeigen für 3d gelesen.
da ich selbst gerade ein animationsprog. schreibe und auch vor dem problem stand
habe ich so ziemlich alle möglichkeiten durchprobiert. ( plane,sprite,cubes,triangles,sogar terrain)
ich hab meiner meinung nach,wohl die schnellste methode gefunden.
etwas unter 1 ms darstellungszeit. (amd 3200)
nachteil : belegt etwa 1 mb im grafikspeicher ,bin dabei eine routine für eine bank zu schreiben.
aber der aufbau verschlingt noch über 250 ms ,komme der sache aber näher ,und wird nachgeliefert.
ich bin mal so frech und stelle das raster einfach mal rein.

an hectic
echt krass. hab mal den taskmanager mitlaufen lassen und ein temperaturfühler.
bei flip 1 geht das ding tatsächlich auf 98 % und die temperatur steigt in nur 10 sek auf 8 grad
ohne 4 %

Code: [AUSKLAPPEN]

Graphics3D 1280,1024,32,1
SetBuffer BackBuffer() :
Global  cam = CreateCamera (), Timer = CreateTimer (100)
PositionEntity (cam,10,15,-15) : RotateEntity (cam,65,30,0) 
   initraster (za)
 Repeat
RenderWorld ()
WaitTimer (timer)
Flip (0)
Until KeyHit (1)
End
;#####################################################################
Function initraster (za)

anz = 25
 raster (za) = CreateMesh() : surface=CreateSurface(raster (za))
sc# = 0.02 : y# = 0

For x = -anz To anz
  For z = -anz To anz
       v1=AddVertex(surface  ,x - sc , y - sc, z - sc )  :     v2 = AddVertex (surface, x -sc , y + sc,  z - sc)
       v3=AddVertex(surface  ,x + sc , y + sc, z - sc )  :     v4 = AddVertex (surface, x +sc , y - sc,  z - sc)
       v5=AddVertex(surface  ,x - sc , y - sc, z + sc )  :     v6 = AddVertex (surface, x -sc , y + sc,  z + sc)
       v7=AddVertex(surface  ,x + sc , y + sc, z + sc )  :     v8 = AddVertex (surface, x +sc , y - sc,  z + sc)

AddTriangle (surface, v1, v2, v4)  : AddTriangle (surface, v2, v3, v4)
AddTriangle (surface, v5, v8, v6)  : AddTriangle (surface, v6, v8, v7)
AddTriangle (surface, v5, v6, v1)  : AddTriangle (surface, v1, v6, v2)
AddTriangle (surface, v4, v7, v8)  : AddTriangle (surface, v3, v7, v4)
AddTriangle (surface, v2, v6, v3)  : AddTriangle (surface, v6, v7, v3)
AddTriangle (surface, v1, v4, v5)  : AddTriangle (surface, v5, v4, v8)

Next : Next

UpdateNormals raster  (za)
 
End Function
;---------------------------------

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Nov 12, 2008 18:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht hilft dir folgender Code ja weiter. Erfordert aber doppeltes Rendering...

Code: [AUSKLAPPEN]
Graphics3D 800,600,0,2
SetBuffer BackBuffer()

Local Timer=CreateTimer(100)
Local Camera=CreateCamera()
Local Mesh=CreateMesh()
Local Face=CreateSurface(Mesh)
Local Cube=CreateCube()
Local Light=CreateLight()
EntityFX Mesh,19

Local Gitter,Q
Local V0,V1,V2,V3

CameraClsColor Camera,96,96,96
PositionEntity Camera,-4,4,0
PositionEntity Cube,0,1,10
RotateEntity Light,20,-20,0

Const Size=40


For Q=-Size To Size
   V0=AddVertex(Face,Q,0,-Size)
   V1=AddVertex(Face,Q,0,+Size)
   V2=AddVertex(Face,-Size,0,Q)
   V3=AddVertex(Face,+Size,0,Q)
   VertexColor Face,V0,0,0,0
   VertexColor Face,V1,0,0,0
   VertexColor Face,V2,0,0,0
   VertexColor Face,V3,0,0,0
   AddTriangle Face,V0,V1,V0
   AddTriangle Face,V2,V3,V2
Next


MoveMouse 400,300


While Not KeyHit(1)
   
   TurnEntity Camera,MouseYSpeed()/4.0,-MouseXSpeed()/4.0,0
   
   CameraClsMode(Camera,1,1)
   WireFrame(0)
   RenderWorld()
   
   CameraClsMode(Camera,0,0)
   WireFrame(1)
   RenderWorld()
   
   WaitTimer(Timer)
   Flip 0
Wend
End
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

fliesenklaus

BeitragMi, Nov 12, 2008 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
is ja noch besser
mit doppelt rendern habe ich das mit plane gemacht ,das sah noch besser aus,aaaber
wenn ich zu nah oder weiter weg war ging alles in die hose.
hatte dann mehrere texturne gebaut ,mit verschiedenen strichstärken .
zusätzlich musste ich noch 1000 lampen aufhängen das ich hinten noch was sah
habs dann aufgegeben.
mit den linien hatte ich auch schon ,nur hab ich die linien zu lang gemacht und es fehlten einige .
hatte nicht dran gedacht das aufzuteilen.

da ist man schon ein halbes jahr dabei und kann immer noch nichts.
und wieder mal danke

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Nov 13, 2008 0:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich bin schon etwas länger dabei, aber ich kenne auch nur meine 5 Sachen mit den ich versuche mich rumzuschlagen. Soll heissen, dass man beim programmieren nie auslernt. Somit wird es nie langweilig, oder, somit wird man nie zufrieden mit sich selbst. Je nachdem wie man es sieht.

Achja, zum Horizont hin, könnte man die Linien transparenter machen. Dann würden die Linien die weiter weg sind, weich den Horizonz füllen, statt wie jetzt ein Pixeltanz zu veranstallten. Wie gut muß es denn aussehen? Für ein Modeleditor reicht doch schon Const Size = 10 oder so...
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group