Polygone zähln / Singlesurface
Übersicht

AMDBetreff: Polygone zähln / Singlesurface |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
heute hab ich zwei fragen und zwar: 1. wie kann ich in BlitzBasic die Polygone von z.b. mehreren Bäumen zählen? hat des was mit dem Begriff "Countsurface" zu tun? ich hab damit schon etwas rum probiert aber ohne erfolg... 2. was is Singlesurface genau? hat des was damit zu tun das des Game schneller geht? denk ich zumindest so viel wie ich jetzt davon gefunden habe und wenn ja wie macht man so etwas? ach ja ich hab zzu beidem schon die forensuche benutzt und auch gegoogelt aber i-wie nix hilfreiches gefunden danke jetzt schon mal... MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zu 1: ql:CountTriangles
Zu 2: Singlesurface ist, wenn zur Darstellung einer Sache nur ein Surface verwendet wird. Ein Surface ist dabei eine ''Oberfläche'' die zu einem Mesh gehört. Ein Mesh kann allerdings auch mehrere Oberflächen haben, nämlich dann, wenn zB mehrere Texturen auf diesem geladen werden. Daher wird empfohlen, beim modellieren alle Struckturen (zB Mauerstein, Gras, Haut etc. je nachdem was für ein Modell grade benutzt wird) auf nur einer Textur zu packen, da wenige Surfaces auch nur wenig zur Grafikkarte gesendet werden müssen. Fazit: - Ein menschliches Model, wo für jedes Körperteil (Augen, Kopf, Hose, Haare etc..) eine eigene Textur abgespeichert wird, ist schlecht. - Ein menschliches Model, wo alle Körperteile auf einer Textur abgelegt sind und per UV-Mapping ausgelesen werden, ist gut. Unter bestimmten Umständen ist aber auch nicht Sinnvoll immer alles zwangsweise in ein Surface zu packen. zB dann, wenn ein winziges Objekt gerendert werden muss, und dann der ganze Rattenschwanz mit von der Grafikkarte berücksichtigt werden muss. Ist aber erstmal eine andere Geschichte. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für Bäume eignet sich CopyEntity ganz gut . | ||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok ok also ich hab jetzt gestern abend die ganze zeit probiert und auch heute aber ich schafs einfach net
also ich lade meine Bäume so Code: [AUSKLAPPEN] For a = 1 To 3000 Baum=LoadMesh("Baum.3ds") EntityAutoFade Baum,100,600 ScaleEntity Baum,Rnd(1,2),Rnd(0.5,2),Rnd(1,2) PositionEntity Baum,Rnd (0,2200),0,Rnd (0,2200) PositionEntity Baum,EntityX(baum),TerrainY(mesh,EntityX(baum)-2,EntityY(baum)-2,EntityZ(baum)),EntityZ(baum) Next und dann will ich die Polygone so rausfinden: Code: [AUSKLAPPEN] For a=1 To CountSurfaces(Baum)
Text 0,a*20,"Dreiecke in Surface: "+CountTriangles(GetSurface(Baum,a)) Next so und jetzt wennn ich z.b. einen Baum in B3D lade dann zeigt es an das der Baum 5250 Triangles hat. und der oben gepostete code für die Polygone zeigt mir zwei werte an wenn ich die zusammen zähle komm ich auch auf den Wert. aber ich will das des gleich zusammen gezählt da steht(falls ich des jetzt alles richtig kapiert hab....) MfG ach ja ich will die ganzen polygone angezeigt haben von allen bäumen ich kanns mir zwar ganz einfach ausrechnen aber ich will das mit des BB gleich anzeigt |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein großer Fehler ist schonmal:
Code: [AUSKLAPPEN] For a = 1 To 3000
Baum=LoadMesh("Baum.3ds") ... Next Du verteilst 3000 Bäume auf ein und die selbe Variable. Dabei kann die Variable nur den einen Wert - und zwar den letzten - speichern, der Rest geht ins Nirvana. Wenn du also alle Bäume einzelnd ansprechen willst, musst du sie in ein Array oder noch besser in Types packen. Übrigens, wenn ein Baum schon 5250 Triangles hat, dann hast du bereits bei 3000 Bäumen 15'750'000 Triangles, die nur für Bäume vergeben sind! Wenn diese nicht gerade kilimeterweit auseinander stehen, wirst du ganz schnell Probleme bekommen. Nicht alle haben ein High-End-System bei sich zuhause stehen, von den leistungsschwachen Notebooks mal ganz abgesehen. Meine Tipps: - Besorge dir ein Baum mit ~100 Triangles. Das was du da hast ist sicherlich nicht für Games als eher für Renderprogramme-Hintergrund gedacht. Ein Baum mit nur 100 Triangles kann, wenn er gut gemacht ist, sehr gut aussehen. - Benutze ql:AddMesh um mehrere Baumgruppen die dicht beieinander liegen zusammen zu fügen. Die Gruppen sollten dabei nicht zu groß werden, so 10 - 30 Bäume vielleicht als eine Gruppe. edit1: Die Gruppen dann einzelnd in Variablen/Array/Types packen. Diese lassen sich dann zB mit ql:EntityAutoFade automatisch ausblenden, die weit genug von der Kamera entfernt sind. |
||
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das kombiniert mit den Baumgruppen wie hectic meint sollte dein Promlem lösen ...
Code: [AUSKLAPPEN] Baum=LoadMesh("Baum.3ds") EntityAutoFade Baum,100,600 HideEntity Baum For a = 1 To 3000 Baum(a)=CopyEntity(Baum) ScaleEntity Baum(a),Rnd(1,2),Rnd(0.5,2),Rnd(1,2) PositionEntity Baum(a),Rnd (0,2200),0,Rnd (0,2200) PositionEntity Baum(a),EntityX(baum(a)),TerrainY(mesh,EntityX(baum(a))-2,EntityY(baum(a))-2,EntityZ(baum(a))),EntityZ(baum(a)) Next |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
boa alter scheiße wie geil is das den ![]() die 3000Bäume werden in einer rießén geschwindigkeit geladen davor hab ich 1.20min zum laden gebraucht alter danke ach ja ich musste den code so verändern: Code: [AUSKLAPPEN] Baum=LoadMesh("Baum.3ds")
EntityAutoFade Baum,100,600 HideEntity Baum For a = 1 To 3000 Baum=CopyEntity(Baum) ScaleEntity Baum,Rnd(1,2),Rnd(0.5,2),Rnd(1,2) PositionEntity Baum,Rnd (0,2200),0,Rnd (0,2200) PositionEntity Baum,EntityX(baum),TerrainY(mesh,EntityX(baum)-2,EntityY(baum)-2,EntityZ(baum)),EntityZ(baum) Next weil sonst wurde angezeigt "Function does not exist" und danke ich werd des mit den Polys auch noch etwas rum probieren! MfG und nochmal danke an euch zwei ![]() ach ja @ hectic es soll ja auch kein Spiel werden sondern ich versuch so vieles in kuzer zeit zu laden und das sowas auch auf schwächern PCs zum laufen zu bringen (falls sowas geht) MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group