zerstörbare Meshes
Übersicht

![]() |
WaveblueBetreff: zerstörbare Meshes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Ich würde gern wissen, ob ihr euch schonmal mit zerstörbaren Mesh-Landschaften beschäftigt habt, in denen man Stücke rausschießen könnte und was ihr dabei rausbekommen habt! ![]() Ich beschäftige mich nämlich derzeit etwas damit, komm aber auf keinen grünen Zweig mit meinen Überlegungen. Ich geh dabei von Worms3D aus, aber ich komm nicht dahinter, wie das dort funzt. Ich glaube, wenn ich mir das so vorstelle, von einem 12-Polygonen-Würfel nur ne kleine Ecke raussprengen...da bin ich glatt überfragt wie man das in einem Programm hinkriegt.... Hoffe ihr könnt mir weiterhelfen Wave |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
![]() |
gameworx |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich stelle mir das so vor, dass der mesh lediglich "deformiert" wird und nicht Teile von ihm entfernt werden. Bei einer Landschaft würde das quasi bedeuten, dass das Zentrum der Explosion einfach "nach unten gezogen" wird. Löcher kann man ja nicht einfach in die landscape machen, weil sie ja nicht massiv ist. Könnte man ja sonst durchgucken. Aber das ist lediglich eine Vermutung. Denn Ahnung habe ich eigentlich nicht wirklich davon. ![]() |
||
AMD Athlon II X3 440 (3 GHz), 4GB Ram, ATI Radeon HD 5450, Win 7 |
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab mal einen interessanten Text gefunden:
Er handelt von der Entwicklung des Worms3d-Zertörungsengine. Ich muss allerdings bemerken, das ich nicht gut genug Englisch kann, alsdas ich dem Text Infos entnehmen kann, geschwiege denn übersetzt Google das anständig: Zitat: Do you mind if I try something over the weekend" Andy Clitheroe (Worms 3D Lead-Technology Engineer) asked me, "I've got a new idea and I think it's worth a go!" Andy was referring to the technology base for Worms 3D and whilst we were happy with the way that the concept & prototype was going, it just didn't allow us to do things the way we really wanted, i.e. ledges, tunnels, floating islands in a fully free-form way.
"Sure, no problem" was the answer and 3 days later Andy blew our socks off. The weekend had been extremely well spent. Our expectations were completely surpassed. This really was game on. The 2nd generation prototype was born. A new approach had been taken as two principal technologies (voxels and polygons) were ingeniously mixed to create a new technology that was simply perfect for Worms 3D. The fact that no other game (to our knowledge) used this technology was equally exciting, particularly given that with the technology came a new 'look and feel' which was unavoidable - but what was great was this forced 'look and feel' was completely and undeniably Worms! We still haven't decided what we call the technology (we did think about naming it as developers generally do) and we can't decide on a 'Volygon Engine' or 'Poxels' - I quite like Poxels. Pretty soon a number of Islands and landscapes were built using a fairly primitive text file, which spliced the land and used "sections" to build it, allowing tunnels, under-hangs, cliffs, you name it. Best of all it was able to be deformed very freely. At this early stage, this was crude and quite slow, but genuinely exciting - for the first time, people really could see this working more than any other way; it was absolutely perfect for the game. Voxel Engine A couple of weeks later we were approached by Ken Silverman, who developed the original Duke Nukem engine for 3DRealms, Ken had developed his own Voxel based engine. The problem with voxels is that you need a lot of them stacked vertically to get any decent image resolution; otherwise they tend to be 'ugly' and overly blocky. They've been used in the past to create intriguing 3D landscapes (as early as 'Rescue on Fractulus' (LucasArts, circa 1984) on the C64!) and are generally height-mapped elements within a grid. The problem with a lot of voxels is that this means quite a lot of processing time which in turn means it's difficult to implement on polygon-based consoles. And to get good resolution on PC you need to be processing a lot of them - and they aren't textured like Polygons, they're simply coloured. Ken's engine was impressive in terms of voxels, but it wouldn't work on console - and Andy had found a much better, hybrid system that suited us perfectly, offering the benefits of '3D material' the way voxels work, which was constructed out of polygons. It is by no means a cheap way to build the landscape, but it would work on all our formats and give us the desired look, feel in terms of both imagery and game play. After a few weeks of improving it, adding water, a basic camera control, some visual improvements and several data structure rewrites, work on a usable editing system for the lands begun which would replace the very raw and rudimentary data entry. At that time, the levels were generated from a series of 2D bitmaps which dictated where in the 3D grid there was land or not. This made the landscapes of the time look quite simple, they had no lighting, very simple 'programmer' textures and absolutely no details. Yet still, the whole team could see where it was heading and when you look back now, comparing how we stand today, it's great to see that our vision for the game has been superceeded by what we've achieved - and the system itself has grown to support all manner of effects and cool stuff. project evolution Worms 3D had been born and with one fell swoop, the thing that separated it from all other 3D games had been delivered - freely deformable landscape technology that wasn't limited, controlled or staged. The basic core of this is now part and parcel of the Worms 3D editing tool which will be supplied with the PC version - although it's much more enhanced these days, with work on the tools going on for months now. It's now a very powerful, dynamic tool and can be used to very quickly generate exactly the world you want. This was perhaps the most fundamental evolution of the project, its potential, drive and enthusiasm, which has kept driving the project and the team forward to this date. In tandem with the code and art, it's allowed the designers to get on board and get their hands dirty from a very early stage. Designers have been creating levels & objects with the tool for about 5 months already, which means by the time the real game worlds will be generated, there will be no holding them back. Traditional destruction It's important to understand what we mean by fully destructible; basically you can blow the land up, objects up, everything up - just like you could in 2D Worms. What's more, we could replicate the same mechanics where floating land could remain, just like in 2D - this gives the game its own look and feel. It meant we could have caves, overhangs, tunnels... everything that Worms needs and traditional 3D engine simply can't provide in a destructible way. Everything you see can be destroyed and none of it is 'animated' or cheated in anyway. Traditional destruction sees objects disappear in a puff of smoke particles & you see animated polygons collapse, perhaps you see land scorched but unaffected geometrically speaking, a few games use height-mapped deformation of the mesh to show some destruction, but nothing (as yet) does what our game does. With perhaps the core ingredient now proven and other elements such as the aiming, movement and camera deep in prototype design, Worms 3D forged onwards dramatically with an energy, purpose and conviction much higher than ever before. Wenn das System einer versteht, kanns mir ja mal jmd. erklären!? |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
ZhangHe2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sowas gibt es auch in Red Faction , das ganze nennt sich da GeoMod, wenn mich nicht alles täuscht.Im Prinzip sollte durch Meshdeformation möglich sein. | ||
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
oder wenn es dir reicht, das Mesh zu zerlegen, und seine Teile rumschmeissen zu können:
Wir sitzen grad auch an so einer ZerstörungsEngine. Man soll gebäude in die Luft sprengen können, sodass ihre Wände und das Innenleben durch die Gegend fliegt. So könnte es gehen (wenn du kein Deform willst) : Nimm dir dein Mesh. Lade es in den 3DModeller, und speichere seine Stücke einzeln ab (Wand1, Wand2, Tür usw...). Dann lädst du den grössten teil des Mesh´s und in einer Funktion den rest mit "AddMesh" (geht schneller) und fügst die teile per Parent an deinen Teil. So entsteht das Gebäude. Wenn nun der Schaden zu hoch ist, dann rufe eine Function auf, die den Parent eintrag löscht, und das Gebäude hochgehen lässt (die Teile zusammenbrechen usw. lässt). Du kannst daraus auch nen Type machen, und dann für jedes Teil ne eigene Schadensberechnung benutzen. Wenn der Schaden von Wand1 zu gröss ist, stürzt sie ein. Das Dach rutscht per Schwerkraft runter usw.... Ich hoffe ich konnt die Helfen. |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
THX Black Spider!
Ich glaube, so ähnlich werde ichs machen, aber noch etwas anders: Ich unterteile das Mesh sehr stark, sodass alles quasi aus Würfeln besteht. Die Würfel tragen dann die Farbe des Inneren des Meshes bzw. setzen die Oberfläche des Meshes zusammen. Schlägt ein Sprengkörper ein, kann man mit den Würfeln spielen und sie durch die Gegend fliegen lassen bzw. sie löschen. ![]() (ja, wieder ein Worms-Screen ![]() Das dürft aber auf den Speed gehen.... Ich muss mir was einfallen lassen, das alle versteckten Polys auch wirklich versteckt sind...*grübel* *kopfzerbrech* fällt euch da was ein? |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
![]() |
SoNenTyp |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wenn du das Mesh erst dann in Würfel zerteilst wenn es nötig ist, sprich wenn die Kugel einschlägt? | ||
Gruss Der Typ.
User posted image |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auf jeden Fall müsstest Du die Würfel in "durchsichtig" und "verdeckend" einteilen.
Alle Würfel, die komplett von undurchsichtigen Würfeln verdeckt werden, kannste sowieso verstecken. Außerdem könntest Du alle Seiten, die an verdeckende Würfel angrenzen auch rausschmeißen, was aber nicht so leicht sein dürfte. Wird nun ein Block rausgesprengt, so muss die Sichtbarkeit für alle angrenzenden Blöcke neu berechnet werden. Die geeignetste Technik hängt davon ab, was Du genau machen willst. |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
BIG BUG hat Folgendes geschrieben: Auf jeden Fall müsstest Du die Würfel in "durchsichtig" und "verdeckend" einteilen.
Alle Würfel, die komplett von undurchsichtigen Würfeln verdeckt werden, kannste sowieso verstecken. Außerdem könntest Du alle Seiten, die an verdeckende Würfel angrenzen auch rausschmeißen, was aber nicht so leicht sein dürfte. Wird nun ein Block rausgesprengt, so muss die Sichtbarkeit für alle angrenzenden Blöcke neu berechnet werden. Die geeignetste Technik hängt davon ab, was Du genau machen willst. ganz genauso meint ich das, BIG BUG. Das Problem ist halt nur, wie krieg ich raus, ob ein Würfel bzw. eine Würfelseite verdeckt ist.. |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In dem Zusammenhang fallen mir Voxel Engines ein, die sich leider nie durchgesetzt haben. Da gibt es dann keine Polygone etc. funktioniert halt alles ganz anders. ^^
Wen das interessiert, dem kann ich nur mal http://advsys.net/ken/voxlap/cavedemo.zip als Beispiel empfehlen, eine Demo zu einer Voxelengine von Ken Silverman (der damals die Build Engine für Duke Nukem 3D entwickelt hat). Da sieht man, was damit u.a. sehr gut möglich ist: das Zerstören der Umgebung, aber deluxe. ^^ Edit: Achja, das ist nicht irgendwie in Blitz3D oder sonstigem verwendbar, nur so als Hinweis vorweg. ![]() |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Schau dir mal den Marching-Cube-Algorythmus an ... da wird von einem Volumen die Polygon-Oberfläche ermittelt | ||
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Waveblue:
füge so eine Function ein: BlitzBasic: [AUSKLAPPEN] Function ruckelfreimachen(mesh$, camera$) mesh$ ist/sind der/die cubes (rufst du für jeden Cube auf), und Camera$ ist die entsprechende Kamera (falls du mehrere verwendest). Da die Kollision etwas wegen HideEntity spinnt, würde ich die Schwerkraft ausschalten (soll durch das TranslateEntity dargestellt werden)... mich würde nur interessieren, wenn du cubes nimmst, wie teilst du dein Mesh in diese ein ? |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
"EntityAlpha objekt,0" macht das selbe wie "HideEntity objekt", lässt aber Kollisionen zu, oder?? | ||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
Black Spider hat Folgendes geschrieben: @Waveblue:
füge so eine Function ein: BlitzBasic: [AUSKLAPPEN] Function ruckelfreimachen(mesh$, camera$) mesh$ ist/sind der/die cubes (rufst du für jeden Cube auf), und Camera$ ist die entsprechende Kamera (falls du mehrere verwendest). Da die Kollision etwas wegen HideEntity spinnt, würde ich die Schwerkraft ausschalten (soll durch das TranslateEntity dargestellt werden)... mich würde nur interessieren, wenn du cubes nimmst, wie teilst du dein Mesh in diese ein ? ich glaub dein Code würde so nicht funzen! Soweit ich weiß, prüft nämlich Entityinview nur, ob das Objekt im Sichtbereich ist, und nicht, ob es verdeckt ist... Das in Würfel einzuteilen...tja, das ist eine gute Frage, mit der ich mich auch schon beschäftigt hab, aber ehrlich gesagt: Ich hab (noch) keine Ahnung.. |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
@FireBallFlame: cool, wusst ich garnet... Danke !
@Waveblue: jup. EntityInView prüft ob es in Kamera Sichtweite ist, und EntityVisible(Entity1, Entity2) prüft ob sich 2 Objekte "sehen" können, oder ob eine Barrikade zwischen ihnen ist, die die sicht versperrt... probier n bischn rum, und kannst mir ja dein ergebnis vorstellen! |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group