Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Mär 28, 2024 11:48

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: Di Jun 26, 2012 16:51 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Ständig eine andere Textur zu binden wird aber sehr stark auf die Performance drücken.
Du könntest zur Laufzeit (beim Start der Anwendung) aus den vorhandenen Texturen einen Texturatlas zusammenbauen. Dann brauchst du nur einmal pro Renderdurchlauf die Textur binden. Man muss dann nur beim Mipmapping aufpassen, dass die benachbarten Textur-Tiles keinen Rand in der anderen Textur hinterlassen.

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: Di Jun 26, 2012 18:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 218
Programmiersprache: Lazarus/FPC
Zitat:
Ständig eine andere Textur zu binden wird aber sehr stark auf die Performance drücken.
Du könntest zur Laufzeit (beim Start der Anwendung) aus den vorhandenen Texturen einen Texturatlas zusammenbauen. Dann brauchst du nur einmal pro Renderdurchlauf die Textur binden. Man muss dann nur beim Mipmapping aufpassen, dass die benachbarten Textur-Tiles keinen Rand in der anderen Textur hinterlassen.

So ganz versteh ich die Idee mit dem Texturatlas nicht. Aber ich glaub die Texturen werden sicher nicht die Performance drücken. Jeder Block wird...gleich nach der Erstellung nachdem er das erste mal gerendert wurde in eine Display-List (ja ich bevorzuge die noch den VBOs) gespeichert, die dann immer aufgerufen wird. Also berechnet er nur einmal die Texturkoordinaten, und den Rest auch, ab dann wird nur mehr aus dem Grafispeicher gelesen. Beim Texturwechsel wird nur eine neue Textur eingebunden...Block gerendert und wieder ab in die Display-List gesteckt.

Zitat:
Wird es später möglich sein richtige Schrägen zu bauen? Das ist etwas das ich in Minecraft vermisst habe. Und das nach sehr kurzer Spielzeit.

Definitiv JA! Ist von Anfang an eingeplant gewesen!

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: Di Jun 26, 2012 20:07 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Zitat:
So ganz versteh ich die Idee mit dem Texturatlas nicht.

Mal als Beispiel ein Texturatlas aus einem Minecraft Texturepack: Bild

Zitat:
Aber ich glaub die Texturen werden sicher nicht die Performance drücken.

Werden sie. Du kannst es ja einfach ausprobieren indem du ein Schachbrett generierst, aber nicht mit 64 Feldern sondern ein paar mehr. Und dabei ständig die Textur wechselst.

Zitat:
Jeder Block wird...gleich nach der Erstellung nachdem er das erste mal gerendert wurde in eine Display-List (ja ich bevorzuge die noch den VBOs) gespeichert, die dann immer aufgerufen wird. Also berechnet er nur einmal die Texturkoordinaten, und den Rest auch, ab dann wird nur mehr aus dem Grafispeicher gelesen.

Wieso landet der Block erst nach dem Rendern in der Displayliste? Wieso landet nur ein Block in der Displaylist?

Zitat:
und wieder ab in die Display-List gesteckt.

Was soll das heissen?

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: Mi Jun 27, 2012 10:51 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 218
Programmiersprache: Lazarus/FPC
Zitat:
Wieso landet der Block erst nach dem Rendern in der Displayliste? Wieso landet nur ein Block in der Displaylist?


Wenn du einen Block veränderst muss nur dieser aus der Display-List geholt werden und nicht alle auf einmal. Hat schon seinen Sinn.

Zitat:
Was soll das heissen?


Naja, wenn ein ein Block aus eine neue Textur bekommt muss sollte man den Block erneut rendern, mit den neuen Textureinstellungen....und da wird er in eine Display-list geschrieben die dann von dem Zeitpunkt an wieder zum Rendern benutzt wird. Solltest du ihn gleich weiterhin als Display-List anzeigen wird er weiterhin die alte Textur rendern und die neue nicht übernehmen.
Bild

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: Mi Jun 27, 2012 12:11 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Etwas verwirrend. Was meinst du mit "aus der Displaylist holen"? Soweit ich weiß, sind Displaylisten nicht mehr veränderbar, wenn sie einmal generiert werden. Oder verwirfst du die Displaylist und erstellst sie neu?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: Mi Jun 27, 2012 13:47 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 218
Programmiersprache: Lazarus/FPC
Genau das.

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: Do Jun 28, 2012 10:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 03, 2002 15:08
Beiträge: 662
Wohnort: Hamburg
Programmiersprache: Java, C# (,PhP)
Mir ist aufgefallen, wenn man innerhalb der großen Blöcke einen kleineren setzt und dann darauf einen großen setzen will, er sehr häufig links oder rechts vom eigentlichen Block einen neuen erzeugt. Das ist irgendwie komisch. Kann das sonst noch mit Screens erläutern.

_________________
(\__/)
(='.'=)
(")_(")


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: So Jul 01, 2012 11:06 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Sieht soweit schon richtig gut aus, aber an der Physik musst dun unbedingt noch Arbeiten. Zum einen kann man nicht weich an Rändern entlangleiten (wie z.B. an Wänden in normalen Spielen) und ihc kann hier oft durch Blöcke durchrennen und fall permanent irgendwo durch den Boden. Da wärs evtl. ne gute Idee auf eine Physikengine wie Newton umzusteigen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: So Jul 01, 2012 12:11 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
.o(linux port?)

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: So Jul 01, 2012 18:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 218
Programmiersprache: Lazarus/FPC
Zitat:
Mir ist aufgefallen, wenn man innerhalb der großen Blöcke einen kleineren setzt und dann darauf einen großen setzen will, er sehr häufig links oder rechts vom eigentlichen Block einen neuen erzeugt. Das ist irgendwie komisch. Kann das sonst noch mit Screens erläutern.


Das liegt ganz einfach daran das die Blöcke bei fixer Größe fixe Positionen haben. Baust du nun einen ganz kleinen Block auf den Boden kannst du da nicht direkt einen viel größeren draufbaun. Der müsste entweder auch auf dem Boden stehen, oder in der Höhe seiner Größe, da wäre es auch möglich den zu platzieren. Aber nicht direkt auf den kleinen Block weil das einfach nicht seine Position ist. :D
Darum wird die Erkennung dann auf die Seite oder manchmal auch nach oben verlagert und dort ein Block hingepflanzt.

Zitat:
.o(linux port?)

Ich glaub da muss ich dich enttäuschen, das wirds sicher nicht so schnell geben. :? Ausser das Spiel wird zufällig so ein Bombenerfolg (was ich aber mal aussschließe) wie Minecraft^^

Zitat:
an der Physik musst dun unbedingt noch Arbeiten.

Ouuuuh, wem sagst du das. Die Physik zu schreiben war noch nie meine Stärke. und Einbinden von Physic-Engines auch noch nie :cry:

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Mina
BeitragVerfasst: Mo Jul 02, 2012 05:54 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ida hat geschrieben:
Zitat:
.o(linux port?)

Ich glaub da muss ich dich enttäuschen, das wirds sicher nicht so schnell geben. :? Ausser das Spiel wird zufällig so ein Bombenerfolg (was ich aber mal aussschließe) wie Minecraft^^

Hm. Gibts irgendeinen grund das nicht OpenSource zu machen? Dann bestehen chancen dass $irgendwer das für dich portiert. Vorhandene Versionskontrolle vorrausgesetzt.

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 26 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.070s | 17 Queries | GZIP : On ]