Multitexturing - wie in ALE

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

imagodespira

Betreff: Multitexturing - wie in ALE

BeitragSo, Jun 13, 2004 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich grübel schon den ganzen Tag wie ich das machen soll.
Wie kann man von einer Textur auf eine andere überblenden.
Schaut euch die Demo mal an, so stelle ich mir das vor:

http://www.dyvision.co.uk/ale.htm


Ich schaue schon lange nach einer Lösung für das Problem, leider noch nichts gefunden. Ich dachte immer das es so in der Art nicht möglich ist.

Für Tipps bin ich sehr dankbar...
 

furbolg

BeitragSo, Jun 13, 2004 23:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist relativ einfach, für einen Übergang in dieser Richtung : A><B brauchst du 1 extra mesh machst dieses nur halb so groß wie das tile und legts es an das Ende / den Anfang, jenachdem wie du meinst (am besten da wo mehr ist, sonst hast du bei einem Tile nur kleinen Fleck Wink). Das Meshkriegt die jeweilige Texture von dem darunter liegenden. Nun der "Trick", bei der Vertex erstellung gibst du den Vertexen am Rand den Alphawert 0 (nur die am Rand, die anderen kriegen alle Alpha 255 sonst sieht man nix), schon fadet die Textur isn durchsichtige
 

furbolg

BeitragSo, Jun 13, 2004 23:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein tipp von mir, wenn du Mesh Terrain hast, speicher dir bei der Erstellung alle Vertex in sowas wie Dim VertexMap(128,128,4). Dann kannst du sie später leicht und schnell verändern, für Explosionen, Tag und Nacht wechsel etc.

imagodespira

BeitragMo, Jun 14, 2004 7:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für Deine Antworten, furbolg!!!

Das ist für mich ein total neuer Ansatz auf den ich nie gekommen wäre. Habe gegrübelt wie ich das mit Multitexturing hinbekomme... aber das es so ist... Habe mir schon was mit den Vertex-Alpha gedacht und auch probiert aber auf Die Idee einfach mehrere Meshes zu überlagern bin ich nicht gekommen. Ich werde es testen, vielen Dank!

Jan_

Ehemaliger Admin

BeitragMo, Jun 14, 2004 8:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ah, ich sehe gerade, Speed verschwinden!

warum benutzt di kein Mjultitexturing, mit weichen übergängen?
Also,
1. Texturen Scalieren auf unterschiedliche größen!
2. Grundtextursetzten(blendmode 1;scale 1,1;sehr hell weil sie dunkel ausssieht)
3.Additve textur, für Schlamm (schwarz weiß,Blend 3, scale Terraingröße,terraingröße)
4. Schlammtextur(Blend 2,Scale Beliebig)
5.Additve textur, für gras (schwarz weiß,Blend 3, scale Terraingröße,terraingröße)
6. Grasstextur(Blend 2,Scale Beliebig)
7.Additve textur, für Berge (schwarz weiß,Blend 3, scale Terraingröße,terraingröße)
8. Bergtextur(Blend 2,Scale Beliebig)
9.Additve textur, für Bergstrucktur (schwarz weiß,Blend 3, scale Terraingröße,terraingröße)
10. Bergstruckturtextur(Blend 2,Scale Beliebig)

Achtung, nicht alle grakas haben 9 Texturen Smile
between angels and insects
 

Dreamora

BeitragMo, Jun 14, 2004 8:15
Antworten mit Zitat
Benutzer-Profile anzeigen
weil niemand soviele Layer aufm Mesh hat und zudem führt deines zu garnix.

Sinn und zweck von der technik is es das zeug über das gesammte Terrain zu stretchen


Wurde allerdings in nem anderen thread schon hinreichend erklärt wie das mit dem Texture Alpha Splatting funktioniert, suchen hilft von zeit zu zeit wenn mans mal benutzen würde, danke
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

imagodespira

BeitragMo, Jun 14, 2004 8:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe schon mal gesucht hier im Forum, aber so wie es in "ALE" gemacht wurde, oder besser mit solcher Qualität, habe ich es hier noch nicht gefunden.

.. was ist Alpha Splatting??? (texturen auf Layern überblenden, oder Vertex-Alpha nehmen....)

Jan_: hast du einen Screenshot, wo ich sehe wie es aussieht??? 9 Layer sind ein wenig viel, denke ich...
 

Dreamora

BeitragMo, Jun 14, 2004 9:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Die methode wie es gemacht wird habe ich hier in einem anderen thread im zusammenhang mit Terrains ausführlich erläutert. Texture Splatting basiert auf alpha werten, in diesem falle vertex alpha. aktuelle engines benutzen eher texture alpha da es beträchtlich bessere aufteilungen erlaubt. Es ist auch mit Blitz3D möglich, ich spiele damit aktuell grad ein wenig rum für Terrain Dreams V2
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

imagodespira

BeitragMo, Jun 14, 2004 9:52
Antworten mit Zitat
Benutzer-Profile anzeigen
So, ich habe noch ein bissel gesucht. Wenn es der richtige Thread war, dan hast Du da beschrieben, daß für jede Textur eine kopie vom Terrein erstellt wird und damit die Polygone ziemlich viel werden...

Sind die Positionen der Terrains immer auf der selben Höhe? Ich denke da an ein gewisses "Flimmern" wenn man etwas weiter entfernt ist (die Grafikkarte weiss nicht, welches Mesh sie nun darstellen soll...) . Oder ist das kein Problem...



Wie weit bist Du mit Deinen Tests zu Terrain Dreams 2, gibt es screens, oder ne Demo?
 

Dreamora

BeitragMo, Jun 14, 2004 10:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst es ja ausprobieren. Eigentlich sollte die ZFlag entsprechend gescheit funktionieren. wenn net wird halt um 0,001 in Y richtung verschoben und gut is Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

imagodespira

BeitragMo, Jun 14, 2004 10:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke erstmal für Deine Tipps.

Ich habe jetzt 2 Terrains übereinandergelegt, geht bis jetzt wunderbar.

Ich werde versuchen ein Mesh zu nehmen und für jede Textur eine Surface. Wenn ich eine textur draufmalen will dann kopiere ich die Dreiecke in die neue Surface und lösche aus der "Hauptsurface" die dinge heraus die ich nicht brauche. Mal sehen ob das so funktioniert. Jedenfalls sollten dann nicht so viele Polygone entstehen, doppelt sind dann nur die, die das Fading per Vertex-Alpha machen... mal sehen...
 

Dreamora

BeitragMo, Jun 14, 2004 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Was du mit rausnehmen meinst weiss ich zwar net, aber die einfachste optimierung:

Entferne Vertex mit Alpha 0 falls alle 8 umliegenden Vertices ebenfalls Alpha 0

in dem Fall kann da keine Alpha interpolation stattfinden.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

furbolg

BeitragMo, Jun 14, 2004 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
dreamoras methode ist viel langsamer, als meine, bei mir werden nur an den entsprechende Stelle neue Vertexe in das LeafMesh (Quadtree Terrain) gepackt. Dreamoras Umsetzung ist bei 9 Texturen, 1. lahm und 2. speicher verschwendung (9 terrains .... tsts ...)

Aber naja, dreamora is ja der / die alles wissende/r....

Jetzt mal im Ernst ich hab mit vielen Leute im C++ Bereich gesprochen und ein Freund von mir kennt paar von JoWood CDV etc. und die machen es genau so.

C&C Generals machts auch so, sieht man am besten im Editor, einfach mal 2 textur malen und dann dieses Edge Tool aktivieren, dann sieht man den Effekt.
 

Dreamora

BeitragMo, Jun 14, 2004 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
dann erleutere deine komische methode mal

nach dem was du da geschrieben hast wird alles über das gesammte terrain gestretched und das endet in ner grausigen grafikqualität weil du nur 1024x1024 als maximal auflösung hast während diese methode ( die übrigens in der industrie standard war bis man die nötigen karten hatte um anstatt vertex alpha texture alpha zu verwenden ) hochauflösende Texturen garantiert.

es ist auch nur die Blitz3D addaptierung der eigentlichen methode die in Blitz3D net geht weil man in Blitz3D keinen zugriff auf den VertexBuffer hat und die Vertexzugriffe beschissen langsam sind so dass man net in realtime multipass rendering machen kann, wie man es eigentlich machen würde. Ich schätze deine methode wird in der industrie auch durch bedeutend grössere texturmaps erreicht. Far Cry hat auch texturen bis in der 16kx16k bereich, das is in blitz3d net drin ( net ma wenn du sie einzeln einliest, da mittels createtexture() erstellte texturen einen bug haben, sie scheinen autoclamp oder so zu haben )

Ich lasse mir auch gerne andere methoden zeigen die hochauflösende texturqualität gewährleisten und in echtzeit funzen, habe bisher jedoch trotz internsiver recherchen keine gefunden die mit Blitz3D gehen wegen mangelndem zugriff auf die VertexBuffer und trianglelists etc


Edit: Nur so als randbemerkung: Grafikkarten haben ein maximum von 8 textur layern, mehr ist nicht möglich. und die sind ca aber der GF2 vorhanden.


edit edit: noch ne frage
wie soll dein system eigentlich genau mit einem terrain funzen? nehmen wir direkt mal das normale Blitz3D Terrain ... dein system blendet ja total über das gesammte terrain ... von daher was bringt es genau?

da kann man das ganze gerade so gut gemeinsam vorher in ne colormap packen ( inkl schatten ) und nebenher ne detail texture aufn 2ten layer nehmen wie es viele machen )
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

imagodespira

BeitragMo, Jun 14, 2004 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich finde das mit den Texturen inzwischen auch nicht mehr so toll (trotzdem Danke Smile ).

Ich hab an Dreamora´s Tipp weitergearbeitet, funktioniert gut.
Inzwischen habe ich 2 Meshes und radiere vom oberen einige Vertices "unsichtbar". Sieht gut aus...

Als nächstes will ich die nicht sichtbaren Dreiecke löschen, was aber auch kein Problem sein sollte....

Alles in Allem bin ich sehr zufrieden, ich werde alles noch ein wenig ausbauen damit ich es dann in meinen Editor einfügen kann und später ins Spiel... Das hat mit noch gefehlt um die Qualität so zu machen wie ich es will, damit die Grafik so perfekt wie möglich wird.

Nochmal vielen Dank an beide!!!
 

Dreamora

BeitragMo, Jun 14, 2004 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
freut mich das es klappt.
beweist immerhin das es net sehr schwer is und damit ALE total überteuert ... aber naja das war vorher klar ... etwas das mehr kostet als Gile[s] und so nix kann is überteuert Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

imagodespira

BeitragDi, Jun 15, 2004 8:58
Antworten mit Zitat
Benutzer-Profile anzeigen
... irgendwie hast Du recht. Wo ich ALE das erste mal gesehen hab war ich total begeistert Smile, aber so viel ist auch nicht dazu, auch wenn ich noch eine Menge zu tun hab damit es alles so geht wie ich will.

eizdealer

BeitragDi, Jun 15, 2004 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Interessante Diskussion habt ihr hier am laufen. ich hab mir zwar nicht alles durchgelesen, aber ich meine, eine durchaus gute lösung für das Problem zu haben. Sie basiert auf Vertexalpha, ist super schnell und nutzt keine zusätzlichen Ressourcen. Genaugenommen sogar deutlich schneller als die ALE Methode.
Ich werf einfach mal einen Screen in den Raum (bitte beachtet dabei, dass der uralt ist, die Texturen und eigentlich alles nur zum Test war):
http://home.arcor.de/madone/trans3.jpg

Wie das ganze funktioniert: Auf die Tiles, auf die ein Übergang soll wird ein weiteres Tile gelegt mit entsprechenden Alphawerten. Wichtig ist dabei, dass das gleich Surface wie das Terrain selber genutzt ist. Das kostet praktisch keine Performance im Gegensatz zum normalen Terrain. Aber auf die Idee muss man halt auch erstmal kommen Wink

Wenn du Hilfe brauchst, meld dich im IRC in #German.
 

furbolg

BeitragDi, Jun 15, 2004 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
eizdealer hat Folgendes geschrieben:
Interessante Diskussion habt ihr hier am laufen. ich hab mir zwar nicht alles durchgelesen, aber ich meine, eine durchaus gute lösung für das Problem zu haben. Sie basiert auf Vertexalpha, ist super schnell und nutzt keine zusätzlichen Ressourcen. Genaugenommen sogar deutlich schneller als die ALE Methode.
Ich werf einfach mal einen Screen in den Raum (bitte beachtet dabei, dass der uralt ist, die Texturen und eigentlich alles nur zum Test war):
http://home.arcor.de/madone/trans3.jpg

Wie das ganze funktioniert: Auf die Tiles, auf die ein Übergang soll wird ein weiteres Tile gelegt mit entsprechenden Alphawerten. Wichtig ist dabei, dass das gleich Surface wie das Terrain selber genutzt ist. Das kostet praktisch keine Performance im Gegensatz zum normalen Terrain. Aber auf die Idee muss man halt auch erstmal kommen Wink


Wenn du Hilfe brauchst, meld dich im IRC in #German.


genauso wie meine Methode ....
 

furbolg

BeitragDi, Jun 15, 2004 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
dann erleutere deine komische methode mal


nach dem was du da geschrieben hast wird alles über das gesammte terrain gestretched und das endet in ner grausigen grafikqualität weil du nur 1024x1024 als maximal auflösung hast während diese methode ( die übrigens in der industrie standard war bis man die nötigen karten hatte um anstatt vertex alpha texture alpha zu verwenden ) hochauflösende Texturen garantiert.


>> wo hab ich was von strechen geschrieben ?


es ist auch nur die Blitz3D addaptierung der eigentlichen methode die in Blitz3D net geht weil man in Blitz3D keinen zugriff auf den VertexBuffer hat und die Vertexzugriffe beschissen langsam sind so dass man net in realtime multipass rendering machen kann, wie man es eigentlich machen würde. Ich schätze deine methode wird in der industrie auch durch bedeutend grössere texturmaps erreicht. Far Cry hat auch texturen bis in der 16kx16k bereich, das is in blitz3d net drin ( net ma wenn du sie einzeln einliest, da mittels createtexture() erstellte texturen einen bug haben, sie scheinen autoclamp oder so zu haben )


>> Wozu Multipass ? braucht man nicht dafür
>> Wieso Texturmap ? Splatting basiert auf Tiles wie Warcraft3


Ich lasse mir auch gerne andere methoden zeigen die hochauflösende texturqualität gewährleisten und in echtzeit funzen, habe bisher jedoch trotz internsiver recherchen keine gefunden die mit Blitz3D gehen wegen mangelndem zugriff auf die VertexBuffer und trianglelists etc.


>> Meine Funtzt in Echtzeit, ist blass 4 Vertexe pro Tile beim Übergang mehr


Edit: Nur so als randbemerkung: Grafikkarten haben ein maximum von 8 textur layern, mehr ist nicht möglich. und die sind ca aber der GF2 vorhanden.


>> Was haben Texturlayer mit Meshstaplung zu tun ? du kannst doch soviele
>> Meshes übereinander packen wie du willst



edit edit: noch ne frage
wie soll dein system eigentlich genau mit einem terrain funzen? nehmen wir direkt mal das normale Blitz3D Terrain ... dein system blendet ja total über das gesammte terrain ... von daher was bringt es genau?


>> nein tut es nicht, es blendet nur bestimmte Teile


da kann man das ganze gerade so gut gemeinsam vorher in ne colormap packen ( inkl schatten ) und nebenher ne detail texture aufn 2ten layer nehmen wie es viele machen )



>> Keine Textur / Shadow map ...
>> Du kannst im Nachhinein noch eine Shadowmap rauf packen, aber wie gesagt
>> Meins funtzt ohne Texturmap

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group