|
3 registered members (Lapsa, Martin_HH, 1 invisible),
1,168
guests, and 7
spiders. |
|
Key:
Admin,
Global Mod,
Mod
|
|
|
Terrain probleme
#228770
09/22/08 12:30
09/22/08 12:30
|
Joined: Jun 2008
Posts: 402 Germany
sebbi91
OP
Senior Member
|
OP
Senior Member
Joined: Jun 2008
Posts: 402
Germany
|
Grüßä ^^
Da Levelgeometrie so viel Rechenleistung verpulvert und der "build" vorgang ewig lange dauert, hab ich versucht den gesamten Level nur aus Terrains und Modellen aufzubauen!
Kein einziges Stück aus diesem Level ist Levelgeometrie!
Das Ergebnis: ein Level der riesig ist und eine buildzeit von 2 sec. (die gleiche größe aus Levelgeometrie hat ca 5 h gedauert ^^)
nun hab ich aber einige probleme zu Terrains!
1. wie kann ich den Terrains befehlen das ihre Oberflächenfarbe geändert wird wenn eine Lichtquelle in der Nähe ist ? also so wie bei Levelgeometrie wenn man der "sun" andere farben zuweist und dynamische Lichtquellen im Level hat! also wenn die Sonne dunkelblaues Licht wirft soll der Terrain auch dunkelblau aussehen
2. Wie kann ich die Schatten der einzelnen Modelle(Spieler, Gegner, Waffen) auf den Terrain bringen ?
3. dem Terrain eigene Schatten werfen lassen (zb ein Berg auf dem Terrain wirft einen Schatten auf die Wiese dahinter)
4. was macht eigendlich der meshwert bei dem terrain?
danke schon ma für eure Antworten ^^
LG Sebastian
Last edited by sebbi91; 09/22/08 12:37.
3D-Gamestudio A8 - Commercial
|
|
|
Re: Terrain probleme
[Re: sebbi91]
#229110
09/24/08 15:50
09/24/08 15:50
|
Joined: Jun 2008
Posts: 402 Germany
sebbi91
OP
Senior Member
|
OP
Senior Member
Joined: Jun 2008
Posts: 402
Germany
|
was'n los ,warum antwortet niemand?
3D-Gamestudio A8 - Commercial
|
|
|
Re: Terrain probleme
[Re: Tobias]
#229122
09/24/08 17:48
09/24/08 17:48
|
Joined: Sep 2007
Posts: 658 germany
Tiles
User
|
User
Joined: Sep 2007
Posts: 658
germany
|
Rechtsklick, "Add -> Light", und unten im Eigenschaften Panel das "Dynamic" Flag anklicken ("dynamic" wie "dynamisches Licht"). Beim Build darf "Create Meshes" nicht ausgeschaltet sein. Zugegeben, das ist ziemlich schwer und für Viele kaum zu schaffen. smile No pasa nada  Zu Deutsch es tut sich absolut nix.  Für dynamische Schatten: Bei dem Modell das "Shadow" Flag anklicken. Allerdings für bessere Schatten ist hier zu empfehlen, den folgenden sauschweren Code in die main-Funktion einzubauen:
shadow_stencil = 1; In Freudentränen ausbrech. Sollte es das wirklich gewesen sein? Das war die Info die ich gesucht habe. Nun sollte wenigstens der Schatten gehen  Danke  EDIT, dacht ich mirs doch, geht trotzdem nicht.
Last edited by Tiles; 09/24/08 18:08.
|
|
|
Re: Terrain probleme
[Re: Tiles]
#229182
09/25/08 08:17
09/25/08 08:17
|
Joined: Sep 2007
Posts: 658 germany
Tiles
User
|
User
Joined: Sep 2007
Posts: 658
germany
|
So, Butter bei die Fische und ein kleines Beispielfile gestrickt. Zwei weiss texturierte MDL Würfel. Cast und Shadow ist bei beiden getickt. Ein knallrotes Licht mit Dynamic getickt. Und shadow_stencil = 1; im Void Main() Eigentlich sollten doch nun die Würfel auf das Licht reagieren, oder? Also müssten sie bei einem roten Licht nun rot werden. Die Würfel bleiben weiss. Und werfen auch keinen Schatten. Hier das File dazu, 10 Kb: http://reinerstileset.4players.de/ext/3dgs/dynamiclightingproblem.zip
|
|
|
Re: Terrain probleme
[Re: Tiles]
#229208
09/25/08 15:01
09/25/08 15:01
|
Joined: Aug 2000
Posts: 1,141 Baunatal, Germany
Tobias

Moderator
|

Moderator
Joined: Aug 2000
Posts: 1,141
Baunatal, Germany
|
Tiles, da gibts eine Menge zu fixen in deinem Level...
Erstens, er hat keine Skybox und keine Bodenplatte. Daher sind alle Entities "Fullbright" und du siehst nicht viel von dynamischen Lichtern.
Zweitens, du hast überall das CAST flag gesetzt und das bedeutet "Ich will keinen Schatten auf dieser Entity". Normalerweise sinnvoll aber wo willst du hier die Schatten sehen wenn gar nichts sonst in dem Level ist?
Drittens, dein dynamisches Licht geht nicht, vielleicht hängt das mit dem fullbright Level zusammen. Das weiss ich nicht, vielleicht solltest du das ins Bugforum posten. Jedenfalls habe ich ein Licht in deinem Skript gesetzt und das geht.
Viertens, du musst sun_color auf 0 setzen wenn die Sonnenfarbe aus dem Level übernommen werden soll, sonst hast du eine zu helle Sonne und siehst in Aussenbereichen wieder keine dynamischen Lichter.
Und shadow_stencil muss auf 2 wenn die Kamera im Schatten sein kann was bei deinem Level der Fall ist.
Also hier ist dein neues Main mit einem dynamischen Licht.
void main() { video_mode = 7; shadow_stencil = 2; vec_set(sun_color,vector(0,0,0)); level_load ("dynamiclightprob.wmb");
you = ent_create(NULL,vector(-181,652,194),NULL); // das ist das Licht vec_set(you.blue,vector(0,0,255)); // ganz rot you.lightrange = 1000; }
Und vergiss nicht CAST im WED zu löschen. Und wenn das level gescheit aussehen soll mach eine Bodenplatte und eine Sky Box.
|
|
|
Re: Terrain probleme
[Re: Tobias]
#229221
09/25/08 16:47
09/25/08 16:47
|
Joined: Sep 2007
Posts: 658 germany
Tiles
User
|
User
Joined: Sep 2007
Posts: 658
germany
|
Mmh, das ist nicht mein Level. Das ist ein Testfile. Das ganze Level zu posten wäre ja overkill, denn es geht ja um grundsätzliches  Zweitens, du hast überall das CAST flag gesetzt und das bedeutet "Ich will keinen Schatten auf dieser Entity". Normalerweise sinnvoll aber wo willst du hier die Schatten sehen wenn gar nichts sonst in dem Level ist? Oha, und wieder löst sich ein Rätsel. Ich dachte wenn man beides setzt tut es auch beides. Denn normalerweise sind Schatten geben und Schatten empfangen zwei Sachen. Kannst du wirklich nur eine Sache in 3DGS? Puh, die Limits ... . Aber okay. Dann kein Cast mehr  Oder doch, ich brauch doch beides, ack. Das Level soll eben aus Entities bestehen. Und da wäre Schatten Geben und Schatten Nehmen nicht schlecht. Hmm. Drittens, dein dynamisches Licht geht nicht, vielleicht hängt das mit dem fullbright Level zusammen. Das weiss ich nicht, vielleicht solltest du das ins Bugforum posten. Jedenfalls habe ich ein Licht in deinem Skript gesetzt und das geht. Humpf, wieso erwische ich eigentlich immer grundsätzlich die Macken zuerst, heh  Ich habe doch nur die Möglichkeit des Add Light im WED. Da kann man nicht viel falsch machen. Geht denn bei dir ein Licht als Dynamisch wenn du es im WED erstellst? Oder ist vielleich genau das das Problem? Muss ein dynamisches Licht unbedingt per Code erstellt werden? Dann ist allerdings der Haken von wegen Dynamisch reichlich fürn, öhm  Viertens, du musst sun_color auf 0 setzen wenn die Sonnenfarbe aus dem Level übernommen werden soll, sonst hast du eine zu helle Sonne und siehst in Aussenbereichen wieder keine dynamischen Lichter. Aye  Und vergiss nicht CAST im WED zu löschen. Und wenn das level gescheit aussehen soll mach eine Bodenplatte und eine Sky Box.
Aye Aye  Und vielen Dank dass du dir die Zeit genommen hast einem Noob unter die Arme zu greifen. Hat mich viel gelernt und geholfen 
Last edited by Tiles; 09/25/08 16:48.
|
|
|
Re: Terrain probleme
[Re: Tiles]
#229358
09/26/08 18:30
09/26/08 18:30
|
Joined: Jun 2008
Posts: 402 Germany
sebbi91
OP
Senior Member
|
OP
Senior Member
Joined: Jun 2008
Posts: 402
Germany
|
danke erst mal für deine hilfe ^^ shadow_stencil = 1; zieht aber übelst an der Rechenleistung , uffff hatte maximal 27 FPS minimal 5 FPS das ruckelt ^^ gibts dafür auch ne alternative ? Mal ne Frage nebenbei: Mein Spieler wird mit dem Code aus dem "Programmieren lernen in 6 Tagen" tutorial bewegt. er führt immer eine distanzmessung durch un wenn der Abstand zwischen Spieler und Boden > 5 dann wird er runtergezogen, ist er < dann wird er abgestoßen das sieht dann aber sehr ruckelartig aus, und der Spieler wippt immer ganz schnell auf und ab ,sieht s****ße aus -.- hat jemand ne besser variante hier mein Code: action 1_Spieler_1 { player1 = me; my.health=20; while(p1_alive==1) { ..... my.ENABLE_shoot = ON; Live_p1(); vec_set(temp,my.x); temp.z-=1000; //berechne den Einen Abstand von -1000 trace_mode=ignore_me+ignore_you+ignore_sprites+ignore_models+use_box; result=trace(my.x,temp); if(result>5) { force.x=0; force.y=0; force.z=-20; //ziehe spieler an } else { force.x=time*dist.x; force.y=time*dist.y; force.z=-1*result;//Stoße SPieler ab } if (result>4 && key_space!=0) //crawl { force.z=-15; } ...
3D-Gamestudio A8 - Commercial
|
|
|
Moderated by mk_1, Perro, rayp, Realspawn, Rei_Ayanami, rvL_eXile, Spirit, Superku, Tobias, TSG_Torsten, VeT
|