Gamestudio Links
Zorro Links
Newest Posts
Trading Journey
by M_D. 04/26/24 20:22
Help with plotting multiple ZigZag
by M_D. 04/26/24 20:03
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
M1 Oversampling
by jcl. 04/26/24 11:12
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
Eigenwerbung
by jcl. 04/26/24 11:08
MT5 bridge not working on MT5 v. 5 build 4160
by EternallyCurious. 04/25/24 20:49
Zorro FIX plugin - Experimental
by flink. 04/21/24 07:12
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
4 registered members (M_D, AndrewAMD, Quad, Ayumi), 806 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
wandaluciaia, Mega_Rod, EternallyCurious, howardR, 11honza11
19049 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Terrain deformieren #467938
09/08/17 19:37
09/08/17 19:37
Joined: Mar 2014
Posts: 359
CocaCola Offline OP
Senior Member
CocaCola  Offline OP
Senior Member

Joined: Mar 2014
Posts: 359
Hallo,

Ich habe in meinem Project, 25x eine terrain plane geladen.
im Handbuch habe ich diese Funktion gefunden:
Code:
// use a gun to produce mole-hills in terrain
function mole_gun()
{
  while (1)
  {
// calculate the target vector
    VECTOR trace_target;
    vec_set(trace_target,vector(5000,0,0)); // firing range 5000 quants
    vec_rotate(trace_target, camera.pan);
    vec_add(trace_target, camera.x);
    
// display a red spot at the target position
    if (c_trace(camera.x,trace_target, IGNORE_PASSABLE | USE_POLYGON| SCAN_TEXTURE) > 0) // hit something?
      draw_point3d(hit.x,vector(50,50,255),100,3);

    if (key_ctrl && HIT_TARGET && you && ent_type(you) == 4) // fire onto terrain
    {
// create a mole-hill by elevating the closest terrain vertex       var vertex_num = ent_nextvertex(you,hit.x); 
     CONTACT* contact = ent_getvertex(you,NULL,vertex_num); 
     c.z += 10;  // increase the vertex height
      c.v = NULL; // c.x,y,z was changed, instead of c.v      ent_setvertex(you,c,vertex_num);    // update the mesh
      wait(-0.5); // reload
    }

    wait(1); 
  }
}



nicht alle vertex reagieren, manchmal verädert sich ein vertext was ich nicht anvisiert habe.

und manchmal wird ein anderes terrain verändert.
manchmal verändert sich der vertex mehr als 10 steps in der z achse.

ich habe hier auch mal mein Project hochgeladen
[url=www.underhut.de/Prototypes/Project.zip]www.underhut.de/Prototypes/Project.zip[/url]

Re: Terrain deformieren [Re: CocaCola] #467945
09/09/17 09:56
09/09/17 09:56
Joined: Jun 2010
Posts: 212
tagimbul Offline
Member
tagimbul  Offline
Member

Joined: Jun 2010
Posts: 212
ich sehe das du ein terrain mehlmals nutzt.
im handbuch unter ent_getvertex:

Quote:
Das Modifizieren eines Mesh einer bestimmten Entity betrifft sämtliche Entities, die dasselbe Mesh verwenden. Um dies zu verhindern, benutzen Sie ent_clone.


ich denke das ein anderes terrain, das jedoch das selbe mdl file ist, verändert wird liegt daran.

beachte auch das bei CONTACT z und y vertauscht sind:

Quote:
c.v.y += 5.0; // raise the vertex (y is the height in DX coorcinates)


also ich würde zuerst einmal versuchen ein funktionierenden prototypen zu machen mit nur einem mesh in einem test level. ohne dein player model
wenn das reibungslos funktioniert:
2 terrains einbinden mit der verwendung von ent_clone

bedenke auch:
da du mehrere terrains nutzen willst wird es bei der überschneidung der einzelnen chunks probleme geben da trace nur ein objekt avisiert.
damit würde es dann, wen du an einer überlappung eine deformation kommt, nur ein terrain anheben oder senken was wiederum löcher in der map verursachen wird.

ich würde das ganz anders aufgleisen.
nutze einen globalen vector und vergleiche ob sich die vertexe sich in der range dieses globalen vectors befinden.
auf diese weise kannst du mehrere terrains, die mit einer while schleife ausgestatet sind, deformieren.

sofern du natürlich eine konstante nutzen willst um das terrain zu erhöhen.

wenn du dann jedoch hüllkurven nutzen willst damit man bzw. eine kugelfürmige deformation machen kann....
bzw. man nutzt den globalen vector und die vertex position um die distanz zu berechnen und nutzt diese dann als factor für die einwirklungsstärke was einen hüllkurven ähnlichen effekt erzeugt,
dann müstest du auch noch ein chunk verwaltungs system machen da es dabei zu ungleichförmigen erhöhungen und vertiefungen bei überschneidung bei den terrains kommen könnte. also quasi müsste man nach der deformierungs funktion die vertexe die sich am rand 2er chunks befinden subtrahiert voneinander in einen temporären vector speichern diesen mit 0,5 scalieren und bei einem addieren und beim anderen subtrahieren. also eingentlich ne interpolation damit sich beide auf halben weg treffen und an gleicher position sind.

damit kann man ausschliessen das wenn 2 vertices, von sich einem überlappenden terrain mit einen unterschied von 0.0000001 haben oder so, aber dennoch unterschiedlich deformiert werden, sich dann doch an gleicher position befinden


naja aber gibt ja 1000 wege wie mans machen könnte =)
hoffe das war hilfreich

lg tom

Last edited by tagimbul; 09/09/17 10:17.

meine website mit 3dgs sachen =) //noch nicht ganz umgebaut ^^"
http://flashbreaker.com/home.html
und mein YT channel mit diversen game entwicklungs videos, vor allem shader zeugs
https://www.youtube.com/user/tagimbul/videos
Re: Terrain deformieren [Re: tagimbul] #467946
09/09/17 14:10
09/09/17 14:10
Joined: Mar 2014
Posts: 359
CocaCola Offline OP
Senior Member
CocaCola  Offline OP
Senior Member

Joined: Mar 2014
Posts: 359
wenn ich ein vector anschiesse, verändert sich z.B. nur der erste Vector im terrain, auch wenn die blaue box vom key_tab menue grösser wird und ein terrain überlappt, kann ich das dahinterliegende terrain nicht mehr treffen, obwohl der 3d punkt darauf zeigt verändet sich nur das vordere Terrain.

Ich habe terrains gewählt, weil die sich nicht alle verändern wie bei modellen

aber nett von Dir zu hörn, tag wink

Last edited by CocaCola; 09/09/17 14:11.

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

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