Registriert: Do Jul 23, 2009 04:33 Beiträge: 157
Programmiersprache: Turbo Delphi Pro
Jo hi, ich hoffe ich nerve nicht langsam weil ich so viele Fragen habe ^^
Diesmal gehts darum ich will Bäume in meiner 3D-Szene haben. Habe also bei Google "Baum" eingegeben...^^ und mir eine TGA mit Alphamaske erstellt. Mein Problem ist nur ich krieg das mit dem Tiefentest nicht hin. Mit Tiefentest überlappt ein Quad das andere, ohne überlappt später der Baum meine davor liegenden Berge... grübel da drüber seit Tagen und komm nciht auf die Lösung. Auch Landschaft malen, Baum ohne Tiefentest malen, Landschaft nochmal mit Tiefentest bringt nix... der Baum ist trotzdem vor den Bergen.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen. (Koreanisches Sprichwort)
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
das Thema ist zu komplex um lange Zeit rein zu stecken.
Zerschneide deine Baumtexturen in der Mitte und mach 4 Quads anstatt 2. (bzw. pass das Mapping an. Du musst die Texturen natürlich nicht zerschneiden).
Dann kannst du alles schön mit Tiefentest malen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Jul 01, 2003 18:59 Beiträge: 887 Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
Ok first render the whole scene and as last your alpha transperent tree's with z-buffer writing off but with testing on.
You can control z-buffer writing with glDepthMask( GLboolean flag )
Registriert: Do Jul 23, 2009 04:33 Beiträge: 157
Programmiersprache: Turbo Delphi Pro
@Noeska thank you, looks perfect
@Flash deinen Rat hatte ich nicht ganz verstanden, wenn ich 4 statt 2 Quads habe verdecken die sich doch nach wievor, ich müsste die also vor dem Rendern sortieren, und da wäre ich ehrlichgesagt im Moment überfordert. Aber wie gesagt der Tipp von Noeska funzt ja.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen. (Koreanisches Sprichwort)
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ahhh, verdammt. Denkfehler. Ich hab jetzt dieses Blendingproblem mit den sich überlappenden Quads im Hinterkopf gehabt. Aber das Trifft bei deinen Bäumen ja nicht zu, da du nur 0 und 1 als Transparenz hast.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Jul 23, 2009 04:33 Beiträge: 157
Programmiersprache: Turbo Delphi Pro
Coolcat hat geschrieben:
Alpha-Test ist auch eine Option, dann kann der Z-Buffer eingeschaltet bleiben.
Hey, geil! Habs grad getestet, absolut Spitze. Zumal ich schon überlegt hab wie ich meine Bäume jetzt sortieren soll, weil die ja jetzt mit DepthMask probleme gemacht hätten wenn sie sich gegenseitig überlagert hätten.
Also ich hab jetzt einfach die AlphaFunc sehr knapp eingestellt, so dass hauptsächlich die großen störenden Flächen weggeschnitzelt werden, und zusätzlich Blending drin. Das gefällt mir sehr gut so. Vielen Dank!
(OpenGL macht riesigen Spaß... aber es ist schwer an die brauchbaren Infos zu kommen, wenn man nicht weiß wonach man suchen soll. Aber toll dass es hier so viele kompetente Leute gibt =) )
//edit... im Prinzip steht das ja auch im Tut Alphamasking... das hatte ich mir sogar angeschaut leider war ich davon ausgegangen dass dort mehr oder weniger dasselbe mit nem JPeg gemacht wird was meine TGAs mittels Blending eh schon können, dass da ein technischer Unterschied besteht ist mir nicht bewusst geworden.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen. (Koreanisches Sprichwort)
Registriert: Do Jul 23, 2009 04:33 Beiträge: 157
Programmiersprache: Turbo Delphi Pro
Well... but i'm testing now, so "sehr knapp eingestellt" isn't true any longer ^^
Code:
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GEQUAL,0.3);
for n :=0to baeume.Count-1do
begin
ShowObjekt(pSpielObjekt(baeume[n])^);// just GL_QUADS + Textures
end;
and, GL_BLEND is Global enabled. The Results are absolutely okay for my Project, but i have to say that the underground for my Trees will be in a similary color as the Trees itsself, so i haven't any Problems with small Failure-pixels.
My Texture is a TGA where i just have with color-range-selection deleted the blue Sky (with Photoshop), i don't know, but its possible that yout have to use other Constants then GL_GEQUAL when you use a self-created Mask.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen. (Koreanisches Sprichwort)
Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.