Surface sortieren (renderreihenfolge ändern)
Übersicht

SilbersurferBetreff: Surface sortieren (renderreihenfolge ändern) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute
erstmal wünsche allen einen guten Rutsch ins neue Jahr... nun zur meiner Frage Ich möchte gerne eine art Sotierung der erstelten surface´s machen das heist wenn ich z.b Surface 1 Surface 2 erstellt habe wird surface 2 for surface 1 gezeichnet wie kann ich jetzt die ausgabe auf dem Bildschirm ändern... surface 2 surface 1 es hat jetzt ja nichts mit den Addvertex zu tun habe keine möglichkeit gefunden surface zu löschen... in diesen zusammenhang fand ich nur clearworld kann mir hier einer weiterhelfen ? |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab zwar davon keine ahnung, aber vielleicht kann man einfach die pointer auswechseln:
p1 p2 x=p1 p1=p2 p2=x so in der art ![]() |
||
Silbersurfer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so geht das leider nicht...
aber danke für die Antwort |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mit Entityorder![]() ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
bjh |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du könntest für jedes surface auch ein eigenes mesh verwenden.
dann kann man die schön sortieren. |
||
Silbersurfer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Xeres
Ich dachte das clearsurface den inhalt der surface löscht aber nicht die surface selber (Vertices ,Triangles) Wie kann ich mit Entityorder auf eine einzelne surface in Mesh zugreifen? bjh das wäre ein gewaltiger geschwindigkeitsverlust...... |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
- Zuletzt bearbeitet von Silbersurfer am Mo, Dez 31, 2012 15:23, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ClearSurface löscht den Inhalt, um das Surface selbst zu löschen fällt mir nur FreeEntity![]() Du kannst nicht auf einzelne Surfaces mit EntityOrder zugreifen, du musst die Surfaces in einzelne Meshes stecken. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
leider ist dein vorhaben recht schwierig zu verwirklichen. Wie du schon richtig gesagt hast entscheidet die reihenfolge der Erstellung eines surface in welcher reihenfolge diese beim rendern bearbeitet wird. durch den ZBuffer ist es normalerweise nicht wichtig. Aber bei transparenten flächen wo das ZBuffer nur mangelhaft arbeitet muss man von hand nachbessern. Fieleicht erzählst du mal was du vor hast. Fileicht findet sich eine andere möglichkeit. EntityOrder regelt die Zeichen reihenfolge von Entitys. Da sind alle Surfaces betroffen die Entity hat- gruss TFT |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
Silbersurfer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tft
Ja genau das meinte ich, Ich bastel sowohl an meiner singlesurface engine als auch an der 3D zu 2D engine Xeres und genau das ist mein Problem in der Singlesurface geht es mit clearsurface, aber wie kann man das mit mehren surfaces lösen? |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe nicht, was du meinst. Du willst dich Zeichenreihenfolge mehrerer Surfaces ändern? Dann musst du jedes Surface in einen eigenen Mesh stecken. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Silbersurfer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Xeres
frisst das nicht speed, dann kann ich auch Sprite nehmen wäre doch dann das selbe oder? |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Allein schon mehr als ein Surface zu benutzen macht das ganze weniger performant... Aber 1000 Quads per Surface ist immer noch 1000 mal besser als Blitz' 1 Sprite = 1 Surface Variante. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Silbersurfer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok Xeres ich probiere das jetzt mal mit 1 mesh und einer surface aus danke für die Tipps
teste mal wieviel speed das zieht... Ich hätte gern ne andere lösung aber mal sehen gruss Silbersurfer |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
![]() |
tft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
du wirst nicht umhinkommen das Object jeden Frame neu zu erstellen und die Surface in der Reihenfolge zu erstellen die du brauchst. Das heist fiel rechnen, da du ja für jedes surface ein Pivot brauchst um die tiefen Position zu bestimmen. Aber soweit ich mich erinere sind Fiele Surface in einem Entity genauso langsam wie fiele Entity. Ich glaube 5000 sind bei 30 fps das maximum. Ausserdem gibts da noch die Vertex begrenzung und das Triangle limmit. Das Child System ist glaube ich ganz gut .... damit läst sich eine Menge machen. Ich halte es für wenig sinnvoll diese zu bewerkstelligen solange es nicht wirklich nötig ist. Was mich aber fiel mehr interesiert wozu du das brauchst. |
||
TFT
https://www.sourcemagic.ch Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!! |
Silbersurfer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tft
Ja das stimmt soweit was du schreibst, ich habe es jetzt wie Xeres mir geraten hat gemacht, also für jede neu erstellte surface ein eignes Mesh gemacht ergab bei mir keine Speedverlust..... super freu,spring ![]() Zitat: Was mich aber fiel mehr interesiert wozu du das brauchst.
Ich ersetzte damit die 2D befehle DrawImage,oval,line und rect u.s.w also ähnlich wie draw3D.... Gruss Silbersurfer |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
PhillipK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dennoch solltest du mit surfaces aufpassen.
Das sind die absoluten speedkiller ![]() Jede Surface MUSS einfach leistung fressen, allein wegen ihren eigenschaften. Das zu erklären, würde jetzt zu lange dauern, aber es sei dir geraten: Packe soviel es geht in eine surface, blende surfaces die du grade eh nicht sehen kannst aus und durchdenke von anfang an eine optimierung. Grundsätzlich gilt, das jeder rechner ab ein paar hundert surfaces zusammenknickt ![]() Aber es kommt auch aufs ganze an: Planst du etwas großes, so sollte mehr rechenleistung für die Optimierung draufgehen, wie fürs rendern *grins* aber solange es stabil bleibt, ists in ordnung. wie gesagt.. sollte es doch mal zu speedproblemen kommen: Erstmal nachschauen, wieviele surfaces existieren und ob da nicht was zu optimieren geht ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du wirklich nur dünne Linen über die 3D-Schnittstelle der Grafikkarte ausgeben möchtest, gibt es noch einen kleinen Trick...
Code: [AUSKLAPPEN] Graphics3D 800,600,0,2
SetBuffer BackBuffer() Local Timer=CreateTimer(58) 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,0,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) RotateEntity Camera,MouseY()*0.2-20,-MouseX()*0.2,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 |
Silbersurfer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
PhillipK
jo das mache ich auch soweit z.b. sterne=is_load_image("sterne.png",3) danach einfach for x=1 to 1000 is_draw_image sterne,rnd(800),rnd(600) next ist dann alles eine surface hectic jo das ist ja auch ne feine sache funzt gut bei mir und sieht auch echt geil aus danke für den tipp ach ich habe jetzt auch alles in Bank´s gepackt |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
SilbersurferBetreff: Sotieren funtz nun sehr gut über EntityOrder |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dank Xeres Rat, kann Ich über EntityOrder schön die Renderreinfolge für die Surface´s einstellen
das Sotieren in der Surface ist nicht nötig da es sich wie 2D verhält (letzte überdeck alle vorherigen) Animation laufen auch super und zuverlässig In großen und ganzen ähnelt es sehr der Draw3D von hectic soll aber auf keinen fall eine Konkurrenz sein, Ich sehe das ehrer als Lern effekt an. Dank hectic habe viel über Bank´s gelernt ![]() hier die derzeitige befehlsübersicht..... ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() [img] http://home.arcor.de/silbersur...engine.jpg [/img] Und zu guter letzt ein download als test ob diese Engine auch bei euch richtig funtz http://home.arcor.de/silbersur...engine.zip Würde mich auf Antworten sehr freuen ! Gruß Silbersurfer |
||
-------------------------------------------------------
XP 2000+ 512DDR Radeon 9800 XL 340GB HD Hompage : http://home.arcor.de/silbersurfer01/ Is Bob engine http://home.arcor.de/silbersur.../Isbob.zip |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group