Single Surface Quads

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Gombolo

Betreff: Single Surface Quads

BeitragMo, Feb 21, 2011 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein 3D Model besteht aus Vertices, die miteinander verbunden werden. Und damit so ein Model nicht langweilig aussieht spannt man eine Textur darüber. Die Rotation und die Bewegung der Objekte rechnet man in DirectX und auch OpenGL mit Rotations- und Transformationsmatrizen. Bevor ein Objekt jetzt gerendert wird, müssen einige Renderstates, die Tetxur sowie die Rotations- und Transformationsmatrizen gesetzt werden. Hat man mehrere Objekte, muss das für jedes dieser 3D Objekte gemacht werden. Oft ist das der Flaschenhals beim redern. Man kann sehr viel Performance rausholen wenn man diese Stats so wenig wie möglich ändert. Also, alle Objekte die die selben Stats, Tetxturen etc. benutzen in einem rutsch rendern. Das ist ein sehr wichtiger Teil bei der der Entwicklung von 3D Engines.

Was sind nun Single Surfaces? Ihr müsst euch die vielen Quads, die im Programm unten erstellt werden, als ein einziges Objekt vorstellen. Die Vertices müssen nicht miteinander zusammenhängen. Nur vier Vertices werden zu einem Quad zusammengefügt. Um die Rotation, die Skalierung und Transformation muss man sich selber kümmern.

Der Vorteil ist nun folgender. Hat man nun 10000 Quads erstellt, kann die Grafikkarte diese in einem rutsch rendern. Denn alle 10000 Quads verwenden die selbe Surface also die selben Renderstats, Texturen und Einstellungen.


Code wird überarbeitet!
  • Zuletzt bearbeitet von Gombolo am Fr, Jan 06, 2012 12:09, insgesamt 7-mal bearbeitet

PacMani

BeitragMo, Feb 21, 2011 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Bitte beachte doch mal diesen Thread: https://www.blitzforum.de/foru...hp?t=30008
Dort steht drin, dass Code zu kommentieren und mit aussagekräftigem Titel zu versehen sein soll!
 

Gombolo

BeitragDi, Feb 22, 2011 9:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, die Funktionsnamen sind doch schon selbserklärend. Viel gibt es dazu nicht zu sagen. Es wird eine Surface erstellt die ich mit Vertexdaten fülle. Diese Vertexdaten werden zu Quads zusammengefügt und rotiert.
Heute ist der erste Tag vom Rest deines Lebens
http://gombolo.go.funpic.de/

PacMani

BeitragDi, Feb 22, 2011 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Und das wird man sich unter dem Titel "Wochenende spielereien" vorstellen können?
Ich find den Effekt, den du durch das Programm erzeugst, echt nett und verstehe auch auf einigen Blicken, wie er zustande kommt. Aber es gibt auch weniger erfahrende User, die gerne mal im Codearchiv stöbern. Vielleicht genau aus dem Grunde, um zu verstehen, wie man mit Vertizes umgehen kann! Und für diese ist der Code nutzlos, weil sie keinen einzigen erklärenden Kommentar sehen.

BladeRunner

Moderator

BeitragDi, Feb 22, 2011 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich stimme PacMan zu und muss dich daher bitten nachzuarbeiten, da der Code sonst nicht den Ansprüchen für das Codearchiv genügt. Wär schade drum, also investier doch noch ein paar Minuten in die Beschreibung, damit auch alles was davon haben.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

TimBo

BeitragDo, Feb 24, 2011 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
du kannst auch syntax="bb" /syntax in [ ] schreiben , so wird der Code hervorgehoben.

Wie wäre es mit Blitzarrays in den Types, würde der Übersicht gut tun. Smile

Aber gute Arbeit !
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.

PacMani

BeitragDo, Feb 24, 2011 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, das ist ja richtig super geworden Very Happy

So soll das sein Very HappyVery Happy

Besten Dank!
 

Gombolo

BeitragDo, Feb 24, 2011 21:06
Antworten mit Zitat
Benutzer-Profile anzeigen
TimBo hat Folgendes geschrieben:
du kannst auch syntax="bb" /syntax in [ ] schreiben , so wird der Code hervorgehoben.

Wie wäre es mit Blitzarrays in den Types, würde der Übersicht gut tun. Smile

Aber gute Arbeit !


Wussta gar nicht das Blitzarrys in Types gehen, kenne mich mit BlitzBasic nicht so gut aus.

Aber jetzt wo ich darüber nachdenke, man könnte viele schöne Sachen damit machen Smile

Z.B. Eine Vegetationengine. Der Teil, in dem das Quad erstellt wird, könnte man dadurch ersetzen das ein Pflanzenmodel geladen wird und die Vertices extrahiert und in das Surface gespeichert werden. Man könnte diese in einer Landschaft platzieren und als Single Surface rendern lassen.
Heute ist der erste Tag vom Rest deines Lebens
http://gombolo.go.funpic.de/

TimBo

BeitragDo, Feb 24, 2011 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde persönlich dann doch lieber auf Banks setzten.

Edit:
Bank als Field von Types natürlic
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Gombolo

BeitragDo, Feb 24, 2011 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
TimBo hat Folgendes geschrieben:
ich würde persönlich dann doch lieber auf Banks setzten.

Edit:
Bank als Field von Types natürlic


Ich habe mal eine doppelt verkettete Liste mit Banks programmiert. Doch einen Geschwindigkeistvorteil konnte ich, gegenüber Types, nicht feststellen.

https://www.blitzforum.de/foru...highlight=
Heute ist der erste Tag vom Rest deines Lebens
http://gombolo.go.funpic.de/
  • Zuletzt bearbeitet von Gombolo am Fr, Jan 06, 2012 12:09, insgesamt einmal bearbeitet

TimBo

BeitragDo, Feb 24, 2011 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
siehe mein Edit:

ich meitne damit NICHT , die Types zu ersetzen , sondern die BlitzArrays. Aber ich glaube das gibt sich auch nichts.
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Gombolo

BeitragDo, Feb 24, 2011 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
TimBo hat Folgendes geschrieben:
siehe mein Edit:

ich meitne damit NICHT , die Types zu ersetzen , sondern die BlitzArrays. Aber ich glaube das gibt sich auch nichts.


Glaube auch nicht das es noch was bringt, naja sollte ja nur eine Spielerei werden. Soll ja nicht in einem großen Quad-Lib-Projekt ausarten Very Happy (hoffe ich Rolling Eyes )
Heute ist der erste Tag vom Rest deines Lebens
http://gombolo.go.funpic.de/

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group