Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

31.07.2003, 22:19

Von VB zu VC++

Hi,
Ja wirklich, bis jetzt hab ich D3D (DX7) nur mit Visual Basic programmiertwill nun aber umsteigen, seit heute hab ich das(dein)
Buch "3D-Spiele-Programmierung".

(und ich bin nicht wegen einer angeblich schlechteren Performance von VB umgestiegen, sondern wegen den Effekten),

Ich hatte mir eigentlich noch ein Einstiegs-Buch zu VC++ bestellt, ist aber irgendwie noch nicht gekommen :-( .
Ich hab jetzt heute in dem Buch schon 50 Seiten gelesen und muss sagen, dass C++ viel tiefgündiger als das Oberflächliche Visual Basic ist.
D3D ist zwar ähnlich oder sagen wir mal fast gleich wie in VB, aber dass meine ich auch gar nicht.
Ich mein das mit dem Speicher reservieren und so, in VB deklariert man einfach die Variable weist ihr einen Wert zu und dann ist Geschichte.
C++ bietet da viel mehr Möglichkeiten und ist auch entsprechend viel schwerer, viel komplexer.
Das hat mich natrlich erst mal umgehaun. :kotz:
-
Aber zu viel des Guten ich wollte ja noch meine Fragen stellen:
1)Ich habe noch Überhaupt keine AHnung von diesem ganzen Speicherbelegungskram in C++, wo kriege ich gute Tutorials
und/oder Bücher zu diesem Thema.
Außerdem hab ich mich(als unwissender VB Programmierer) bei den Methoden deinenr Engine gefragt, was der Mist soll, ergo ich hab total nicht durchgeblickt, was du mit den ganzen Zeigern wolltest, mir kam das teilweise wie Hardware Programmierung vor, also wie chinesisches Programmieren. Mich kotzt es richtig an, das es scheint, dass ich bis jetzt nur in einer absoluten Lamer Sprache programmiert habe :kotz:
2)Spiegelung von Wasseroberflächen:
Ganz ehrlich mal, EnvironmentMapping ist der letzte Scheiß, wenn ich es mal so sagen darf, ich finde das mit den Sky Boxen total unrealistisch.
Und das mit den Spiegelungen geht ja nur wenn man die entsprechende Umgebungstextur(Skybox) hat.
Richtige Spiegelungen werden mit dem Stencil Buffer gerendert, leider ist in deinem Buch kein entsprechendes Beispiel zu diesem Thema.

3)Terrainrendering:
Aus eigener Erfahrung muss ich sagen, dass Terrainrendering über Heightmaps schlichtweg primitiv ist. Für ein richtiges Gebirge mag das genau das richtige sein, aber für Adventure Landschaften(Hügel und unberechenbares Gebiet, wie in Gothic I/II) ungeeignet.
Weil diese über heightmaps erstellte Landschaften wirken zu plastisch irgendwie, haben keine richtige Atmosphere, weil man merkt dass sie nicht handkreiert sind.
Die Alternative zum Heightmapping ist ein guter 3D Terraineditor.

4)Heightmaps Verarbeitung über Trianglelist zu langsam:
Ich weiß noch nicht ob du es auch so gemacht hast, aber in den DX Büchern, welche auch Heightmaps durchnehmen, verarbeitet man die Heightmaps mit TriangeList, wieso verwendet man kein trianglestrip, was quasi doppelt so schnell ist oder geht das in dem Fall mit Heightmaps nicht?
(Durch das Doppelpointing ist es ja möglich mit Trianglestrip die Richtung des "Strips" ohne Texturübelappungen zu ändern)

5) Plastische Texturen:
Vielleicht kennst du die 3D Engine Prototype (www.renderman.com).
Dort auf der Homepage ham sie in der Gallerie einige gute Bilder, obwohl ich die Engine nich so dolle finde, fand ich doch eines total cool.
Auf einem Screen gab es eine Bodentextur, es war nur eine Textur,
da waren irgendwelche Ringe als Kachelung dargestellt, aber die sahen richtig plastisch aus, so als ob die wirklich als Polygon gerendert wären.
Aber das war anscheinend "nur" Bump Mapping.
Diesen Ausdruck höre ich seit geraumer Zeit und mal höre ich das hätte was mit Modulation der Beleuchtung zu tun mal dass die Textur extra tiefen Werte hätte. Nun das einzig was mich dabei interessiert ist, dass ich wissen will wie man das programmiert... :-)

MFG Tom

p.s.:
Ich würde außerdem wissen, wie man es schafft so schnell nach dem Release von DX9 so ein fettes Buch in so kurzer Zeit zu schreiben.
Ich mein es dauertja auch immer was bis man das neue DX drauf hat.
Umso mehr erstaunen mich die Leute, die es anscheinend so nebenbei zu schaffen scheinen, eine Engine mal eben so aus dem Hut zu zaubern, obwohl DX9 noch gar nicht draußen ist. Und wenn es was drüber gab,
dann nur in Englisch.
Ganz ehrlich mal, du musst ja ein absluter Überflieger sein...
Hut ab, das schafft nicht heder :ohoh:

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

31.07.2003, 22:46

Re: Von VB zu VC++

Zitat von »"Tom"«

Ganz ehrlich mal, EnvironmentMapping ist der letzte Scheiß, wenn ich es mal so sagen darf, ich finde das mit den Sky Boxen total unrealistisch.
Und das mit den Spiegelungen geht ja nur wenn man die entsprechende Umgebungstextur(Skybox) hat.
Richtige Spiegelungen werden mit dem Stencil Buffer gerendert, leider ist in deinem Buch kein entsprechendes Beispiel zu diesem Thema.

Du wirst Dich wundern, wie viele Spiele Environment-Mapping verwenden. Es ist ja auch nicht für 100%ig klare Spiegelungen gedacht. Eine sehr kleine Cube-Map reicht meistens völlig aus. Wenn Du dann ein Objekt "spiegelglatt" machst, siehst Du direkt, dass es z.B. oben leicht in die Farbe des Himmels übergeht und unten leicht in die Farbe des Bodens etc.. Das sieht man z.B. bei Battlefield 1942, unter anderem bei den Glasscheiben oder bei Zielfernrohren. Für richtige Reflektionen, wo man dynamische Objekte sieht, war leider kein Platz mehr. Du musst bedenken, dass sich das Buch an Anfänger richtet und jetzt trotzdem schon 800 Seiten hat. Mehr ging zu dem Preis von 39,90 € mit CD-ROM kaum noch.

Zitat von »"Tom"«

Aus eigener Erfahrung muss ich sagen, dass Terrainrendering über Heightmaps schlichtweg primitiv ist. Für ein richtiges Gebirge mag das genau das richtige sein, aber für Adventure Landschaften(Hügel und unberechenbares Gebiet, wie in Gothic I/II) ungeeignet.
Weil diese über heightmaps erstellte Landschaften wirken zu plastisch irgendwie, haben keine richtige Atmosphere, weil man merkt dass sie nicht handkreiert sind.
Die Alternative zum Heightmapping ist ein guter 3D Terraineditor.

Hier verstehe ich nicht ganz, was Du meinst. Eine Height-Map ist doch nur eine Karte, die die Höhe des Terrains an jeder Stelle speichert. Wie sollte man es denn sonst machen? Mit einer mathematischen Funktion? Und wer sagt denn, dass man Height-Maps nicht per Hand erstellt? Mit meinem Tool kann man die Height-Map wunderbar mit der Maus malen.

Zitat von »"Tom"«

Ich weiß noch nicht ob du es auch so gemacht hast, aber in den DX Büchern, welche auch Heightmaps durchnehmen, verarbeitet man die Heightmaps mit TriangeList, wieso verwendet man kein trianglestrip, was quasi doppelt so schnell ist oder geht das in dem Fall mit Heightmaps nicht?
(Durch das Doppelpointing ist es ja möglich mit Trianglestrip die Richtung des "Strips" ohne Texturübelappungen zu ändern)

Ich habe es überhaupt nicht gemacht :) Ich gebe lediglich ein paar Hinweise, wie man Terrains rendern kann. Eine Implementierung gibt es im Buch nicht. Ich denke aber auch, dass man so viele Dreiecke wie möglich mit Triangle-Strips zeichnen sollte. Theoretisch könnte man ein gesamtes Terrain bzw. einen gesamten Terrain-Block durch einen einzigen Triangle-Strip darstellen.

Zitat von »"Tom"«

Aber das war anscheinend "nur" Bump Mapping.
Diesen Ausdruck höre ich seit geraumer Zeit und mal höre ich das hätte was mit Modulation der Beleuchtung zu tun mal dass die Textur extra tiefen Werte hätte. Nun das einzig was mich dabei interessiert ist, dass ich wissen will wie man das programmiert... :-)

Dafür war leider auch kein Platz mehr. Bump-Mapping kommt jedoch wahrscheinlich in die zweite Auflage mit rein.

Zitat von »"Tom"«

Ich würde außerdem wissen, wie man es schafft so schnell nach dem Release von DX9 so ein fettes Buch in so kurzer Zeit zu schreiben.
Ich mein es dauertja auch immer was bis man das neue DX drauf hat.
Umso mehr erstaunen mich die Leute, die es anscheinend so nebenbei zu schaffen scheinen, eine Engine mal eben so aus dem Hut zu zaubern, obwohl DX9 noch gar nicht draußen ist. Und wenn es was drüber gab,
dann nur in Englisch.
Ganz ehrlich mal, du musst ja ein absluter Überflieger sein...
Hut ab, das schafft nicht heder :ohoh:

Naja, ich bekam das DirectX 9 SDK ja schon vorher, da ich mich als Betatester angemeldet hatte. Wann das genau war, weiß ich nicht mehr, aber es war schon erheblich früher als das offizielle Release. So hatte ich genug Zeit, um mich mit DirectX 9 vertraut zu machen.

Anonymous

unregistriert

3

31.07.2003, 23:09

Re:

Trotzdem ich finds dennoch erstaunlich, ich mein du hast ja nebenbei noch Schule, ach übringends, ich denke wir wohnen ganz in der Nähe.
Ich gehe nämlich in Rheinbach aufs VPK...
Hätte nich gedacht dass du erst so jung bist, aber egal.

Zu den Heightmaps, du hast schon Recht, dass man die Heightmpas mit einem Heightmap Editor erstellen kann. Aber mit Hand-kreiert meine ich dass man jede Fläche selbst setzt. Ich hab in VB einen Editor geschrieben, der einzelne Flächen(inklusive Texturen und Ffekte) erstellen kann und auch noch Objekte, wie Bäume, reinladen kann.
Du musst dir das so vorstellen als seist du in einem Spiel und könntest die Fläche selbst gestalten Koordinaten per Auswal und "+" und "-" Tasten.
Mit so einem Editor kann man sich alle Traumwelten so basteln wie man will. Nebenbei erstellt dieser Editor auch Werte für eine Kollisionserkennung.
Aber wenn ich mir das mit den Heightmaps ansehe, ich weiß du setzt hier und da zwar paar Erhöhungen hin, aber das wahre ist es nicht und es sieht immer alles so rein aus, das meine ich mit nicht-hand-reiert.

Environment Mapping in Battlefield ist mir so noch nicht aufgefallen.
Diese Minimalen Spiegelungen kann man aber auch einfacher mit Alpha Blending(Textur Blending) erreichen indem man die Transparenz proportional zum Betrachterwinkel oder der Betrachterposition setzt, das ist wesentlich Speicher schonender und sieht genauso aus.
Hab ich bei mir auch mit VB gemacht, zu solchen Tricks ist man gezwungen wenn man noch DX 7 verwendet...(sieht Gothic 2)

Zum Bump Mapping, kennst du vielleicht paar gute Tuts zum Thema Bump Mapping in C++ ? (Können auch auf englisch sein)
Gute Nacht; Tom
}>

4

01.08.2003, 01:17

Was hast du gegen Heightmaps ?

Du kannst dir ja auch was eigenes ausdenken womit du auch Höhlen etc. machen kannst.

Ach ja, es gibt da etwas sehr schönes namens DirectX 9 Software Development Kit (SDK) da sind auch ein paar Beispiele für die ganzen Mapping geschichten :)

Werbeanzeige