Single Surface Quads
Übersicht

GomboloBetreff: Single Surface Quads |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey, das ist ja richtig super geworden ![]() So soll das sein ![]() ![]() Besten Dank! |
||
Gombolo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. ![]() 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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() ![]() |
||
Heute ist der erste Tag vom Rest deines Lebens
http://gombolo.go.funpic.de/ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group