Gamestudio Links
Zorro Links
Newest Posts
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
M1 Oversampling
by 11honza11. 04/30/24 08:16
Trading Journey
by howardR. 04/28/24 09:55
Zorro Trader GPT
by TipmyPip. 04/27/24 13:50
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
4 registered members (7th_zorro, degenerate_762, AndrewAMD, ozgur), 774 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Newest Members
firatv, wandaluciaia, Mega_Rod, EternallyCurious, howardR
19050 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 2 of 3 1 2 3
Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: FRAJO] #16365
08/26/03 22:54
08/26/03 22:54
Joined: Oct 2001
Posts: 1,163
Germany
XeXeS Offline
Serious User
XeXeS  Offline
Serious User

Joined: Oct 2001
Posts: 1,163
Germany
Ich habs schonmal beschrieben aber da kam keine Antworten:

Ich will Conitec nicht anmachen aber mann könnte es ja mal probieren.

Im normalfall werden bei einer 3D Engine immer zuerst die völlig undurchsichtigen Objekte gerendert. Dann werden die Transparenten Objekte in der Reienfolge so sortiert das man sie von hinten nach vorne Rendern kann. Auserdem schaltet man im normalfall das Culling aus ( das ist das damit die Dreiecke die auf der Rückseite sind also diese die man eh nicht sieht wegfallen) weil durch ein Transparentes Objekt kann man ja hindurchsehen und sieht so eventuell auch die Rückseite eines Objekts. Das Reicht aber nicht denn dann kommt es zu diesen Modell Internen Fehlern Wo mal eines der Hinteren dreiecke plötzlich Vorne ist etc.
Kennen wir ja alle nicht oder ? . Eine Liste zu machen wo man für jedes Modell die Reienfolge der zu zeichnenden Faces speichert kann man auch vergessen das wär zu langsam.

Wenn man nun aber Das Objekt zuerst einmal so zeichnet das alle Faces die zu Kamera hinzeigen wegfallen. ( D3DCULL_CW ). Und dann das Objekt nocheinmal zeichnet so das alle die wegfallen die von der Kamera wegzeigen ( D3DCULL_CCW ) dann sind Die Polygone nähmlich schon sortiert. Das ist nicht immer hundert Prozentig aber es ist meistens ausreichend genau.


Man rendert das Objekt also zweimal einmal von der Rückseite und einmal von der Vorderseite die Polygone sind sortiert und die die auf der Rückseite sind können die auf der Vorderseite nich überschneiten.

Wie ichs noch erklären soll weiß ich nicht ich weiß nur das des so funktioniert und ausreichend schnell ist. Und hoffe das sich das ein Conitecler mal anschaut.



Last edited by MannyDasMammut; 08/26/03 23:00.
Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: XeXeS] #16366
08/26/03 22:59
08/26/03 22:59
Joined: May 2002
Posts: 7,441
ventilator Offline
Senior Expert
ventilator  Offline
Senior Expert

Joined: May 2002
Posts: 7,441
der einzigste unterschied zwischen a6 und deiner methode ist, dass du zusätzlich auch die backfaces zeichnest. aber die polygone werden deshalb nicht besser sortiert als in a6!

Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: ventilator] #16367
08/26/03 23:14
08/26/03 23:14
Joined: Oct 2001
Posts: 1,163
Germany
XeXeS Offline
Serious User
XeXeS  Offline
Serious User

Joined: Oct 2001
Posts: 1,163
Germany
Oh mann, jetzt mach ich mich unbeliebt, wilst dus nicht checken.

Nur für dich:

Haste schonmal in einen Glaßkasten geschaut ? Bei der Methode die Conitec verwendet sieht man plötzlich wenn man reinschaut die innen Wände Nimmer. Wäre aber komisch oder klar das dabei dann keine Sortierfehler auftreten wenn man sie nicht zeichnet.

Sie sollten aber gezeichnet werden um den nötigen Realismus zu bieten. Denn wenn du in eine Glaßvitrine schaust siehst du innen auch die Rückseite. Jetzt kommt dann du kanst dir deinen kasten ja aus sprites bauen jo richtig kann man ist aber total beschissen weils

1. Zeitaufwendiger ist und 2. ungenauer

Anstatt könnte man doch ein Modell machen. So jetzt hat man sein tolles Modell und legt es als Vitrine in sein level. Normalerweiße ist jetzt D3DCULL_NONE aktiv so das beide seiten gezeichnet werden. Aber wenn das stimmt was du sagst dann ist D3DCULL_CCW aktiv und die rückseite fällt weg ADE Realismus . . Jo jetzt haste noch ne möglichkeit du machst es so das du in den Kasten als Modell noch mal einen setzt und die normalen wendest. Su durch die allgemeinen Sortierprobleme die wir ja alle kennen weiß die Engine gar nimmer was vorne und hinten ist und rendert halt mal. Blob Fehler. So hätte man das nur gelassen mit dem inneren kasten den anstatt die Rückseite wegfallen zu lassen damit sich die 2 Transparenten seiten nicht überschneiten kann man ja zweimal rendern und dann das aus dem Vorigen thread.

So wenns jetzt checkst ok ansonsten mir auch wurscht ich habs schon gemacht und klapt prima. Ob dus glaubst oder nicht es funktioniert.


So und jetzt noch ne Idee zu den Bäumen. Halbiere oder viertle ihn dann sollte es die Objekt sortierung schon einigermaßen hinbekommen.

Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: XeXeS] #16368
08/26/03 23:22
08/26/03 23:22
Joined: May 2002
Posts: 7,441
ventilator Offline
Senior Expert
ventilator  Offline
Senior Expert

Joined: May 2002
Posts: 7,441
ich hab schon verstanden was du meinst. a6 zeichnet keine backfaces und meistens würde das auch nichts bringen. z.b. bei einer glasvitrine modelliert man auch den innenraum wenn es gut aussehen soll. die seitenwänden sollen ja nicht einfach dünne polygonplatten sein! für was braucht man dann backfaces?

du hast recht, dass für manche transparente objekte doppelseitig dargestellte polygone von vorteil wären, aber mit der lösung des sortierungsproblems hat das nicht viel zu tun! z.b. auf einem baum hättest du dann trotzdem genau so viele sortierungsfehler. und falls conitec doppelseitige geometrie implementieren würde, würden sie schätze ich schon auf die idee gekommen bei transparenten objekten die backfaces zuerst zuzeichnen.

Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: ventilator] #16369
08/27/03 07:13
08/27/03 07:13
Joined: Oct 2001
Posts: 1,163
Germany
XeXeS Offline
Serious User
XeXeS  Offline
Serious User

Joined: Oct 2001
Posts: 1,163
Germany
Also ich hab jetzt mal ein Baum modelliert ihn in eine Scene gestellt er hat auch Transparentsfehler aber die fallen kaum auf damit ihr das sehen könnt zeig ich den jetzt mal.



Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: XeXeS] #16370
08/27/03 10:54
08/27/03 10:54
Joined: Sep 2002
Posts: 8,177
Netherlands
PHeMoX Offline
Senior Expert
PHeMoX  Offline
Senior Expert

Joined: Sep 2002
Posts: 8,177
Netherlands
Quote:

Hi!
Das Problem ist : Ich habe gerade über 40 Bäume in Arbeit - mit dieser umständlichen Methode währe es zuviel arbeit. Wenn es nur über diese methode geht - dann ist 3D Gamestudio für Landschaft - und Baumdarstellung schlichtweg UNGEEIGNET . Oder könnte Conitec das villeicht im nächsten A6 Update beheben??
Ansonnsten müssen wir das mit dem Urwald aufgeben , weil es einfach zu unprofessionell aussehen würde.





Hmmm, aber was wenn du es einpackt in eine art random tree-generator script??

Es gibt glaube ich schon ein par schöne und wirkende scripts auf das Net!


PHeMoX, Innervision Software (c) 1995-2008

For more info visit: Innervision Software
Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: PHeMoX] #16371
08/27/03 13:58
08/27/03 13:58
Joined: Aug 2003
Posts: 56
Stuttgart,Germany
Maxisoft2 Offline OP
Junior Member
Maxisoft2  Offline OP
Junior Member

Joined: Aug 2003
Posts: 56
Stuttgart,Germany
Hi!

Vielen Dank für die zahlreichen Antworten . Es stimmt schon , das das Transparenz-Problem in den Blättern nicht so arg auffällt.Aber das Problem ist , das die bäume dennoch einen Grafikfehler haben würden . (Und es ist bestimmt ganz im Sinne von Conitec , das in einer Grafikdemo , die die Engine representieren soll , keinerlei auch noch so kleine Bugs zu finden sind , die auf die Engine zurrückzuführen sind )Und ich bin mir absolut sicher , das es eine Möglichkheit gibt , durch ein paar zeilen Code das Problem zu beheben.
Leider bin ich kein guter skripter-ich kann nur ein paar zeilen Wdl , sonnst würde ich mich daran versuchen.

Naja - ich hoffe auf weitere Lösungsvorschläge , und evtl kann conitec sich überlegen , ob sie -sofern es möglich ist- den Bug auszumärzen (soll heisen entfernen)zu versuchen.


cu , Maximilian Schmierer
Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: Maxisoft2] #16372
08/27/03 15:25
08/27/03 15:25
Joined: Sep 2000
Posts: 3,936
CH
P
Perro Offline

Expert
Perro  Offline

Expert
P

Joined: Sep 2000
Posts: 3,936
CH
so einfach ist das nicht. diesen "bug" findet man sogar in grossen kommerziellen spielen (fifa 2003). nur haben sie da darauf geachtet dass er kaum auffaellt.

Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: Perro] #16373
08/27/03 15:28
08/27/03 15:28
Joined: Oct 2001
Posts: 1,163
Germany
XeXeS Offline
Serious User
XeXeS  Offline
Serious User

Joined: Oct 2001
Posts: 1,163
Germany
Ihr redet immer von einem Bug es ist aber eigentlich keins. Denn ein Bug bezeichnet ja einen Fehler. Dies ist aber eigentlich kein Fehler sondern ein ganz logischer nebeneffekt welchen man nicht einfach so beheben kann.

Re: Eine schon sehr oft gefragte Frage - Tga Sprit [Re: XeXeS] #16374
08/27/03 17:38
08/27/03 17:38
Joined: Dec 2002
Posts: 3,363
Vindobona (Ostarichi)
Harry Potter Offline
Expert
Harry Potter  Offline
Expert

Joined: Dec 2002
Posts: 3,363
Vindobona (Ostarichi)
Diesen "Bug" gibt es, soviel ich weiß, in fast allen anderen Engines auch.
Wie ich aber schon weiter oben beschrieben habe, kann man diesen "Bug" durch geschicktes Design umgehen. Es ist zwar mühsam, aber es funktioniert.

Ich habe schon Pflanzen-Models mit TGA-Skin erstellt, bei denen keine falsche Überlagerung sichtbar ist.

Man muss die Models oft in MEHRERE Models aufsplitten. Also Models mit BMP-Skin und Models mit TGA-Skin. Man kann nicht einfach eine Glas-Vitrine und den Inhalt dieser Vitrine (Vasen, Geschirr) in einem einzigen Model machen. Man muss die undurchsichtigen Teile mit Bitmap-Skin-Models machen, und die transparenten Teile als eigenes TGA-Skin-Model. Und man muss bei transparenten Models auf die Reihenfolge der Erstellung der Polygone achten. Von Vorteil ist dabei, dass ein Polygon immer nur von EINER Seite sichtbar ist.

Nur ein einfaches Beispiel:

Seite A

-----A1-------
-----A2-------

-----B1------
-----B2------

---C1---
---C2---

Seite B

Dies soll ein Model für Gras-Sprites von oben gesehen darstellen. Jedes "Sprite" besteht aus 2 Polygonen (also aus einem Rechteck). Da so ein "Sprite" ja nur von einer Seite sichtbar ist, muss das Model aus zwei solcher Sprites zusammengesetzt werden (mit unterschiedlich ausgerichteten Normalen). Ein von beiden Seiten sichtbares Gras-Sprite besteht also z.B. aus den Polygonen A1 und A2.

Beim Erstellen der Polygone muss man nun wie folgt vorgehen:
- Zuerst Polygon C1 erstellen, dann B1, dann A1. Nun ist gewährleistet, dass die Polygone immer richtig überlagern, wenn der Betrachter von Seite A darauf blickt.
- Als nächstes erstellen wir die Polygone A2, B2, C2 (in genau dieser Reihenfolge). Somit sind die Polygone auch richtig sortiert, wenn der Betrachter von Seite B darauf blickt (der Vorteil dabei: die Polygone A1, B1, C1 sieht man ja von dieser Seite nicht, daher können sie auch nicht falsch überlagern).

Und genauso muss man auch z.B: bei Bäumen vorgehen: also Pflanzen, die sehr klein sind, und auf die man von oben drauf blickt, sollten immer von unten nach oben konstruiert werden. Bei hohen Bäumen, die man immer von unten sieht, muss es genau umgekehrt gemacht werden. Bei Glas-Vitrinen mit Innenflächen muss man wie bei dem Gras-Beispiel vorgehen.

Ist mühsam, zahlt sich aber aus. Und ich schätze mal, in professionellen Spielen wird es genauso gemacht!?!?

Page 2 of 3 1 2 3

Moderated by  HeelX, Spirit 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1