3D Würfel ohne Ogre

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

yo.. code posten, der Libs oder Includes braucht, ohne diese zu nennen, ist echt ne schwache Leistung...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Wo wir wieder beim Thema CodePosten wären.

Deshalb hatte ich ja die Diskussion schon mal angefangen, dass man Musik, Texturen/Bilder und auch 3D-Objekte direkt im Code erzeugt.
Wenn das schön optimiert ist und vielleicht alle die gleiche Include nehmen, bzw. diese Sachen nativ in PureBasic integriert werden ...

kann man zu mindest für kleinere Demos und Beispiele auf Zusatzlibs, Images, MP3s etc. verzichten.

Klar wird man damit nicht die Komplexität eines Unreal 3 erreichen.
Aber das ist ja auch nicht die Absicht. Mir ging es drum, dass man für Neulinge, Anfänger und Fragen, schnell einfache Lösungen präsentieren kann, die keien Fehler enthalten.

Wie gesagt, leider sind CodeArchive mit PureBasic 4.x / 3.x Kompatibilitätsproblemen überhäuft, im PureArea gibt es zahlreiche tote Links und Beispiele sind noch mit PureBasic 2.x erstellt worden.

Klar macht es Arbeit, die Sachen auf dem aktuellen Stand zu haben, aber wenn man als PureBasic 4.x Nutzer jedes mal erst nach Libs suchen muss, den Code umschreiben muss, damit er ausführbar ist ... von Plattformunabhängigkeit ganz zu schweigen ... dann macht das Programmieren auch wenig Spaß. Bzw. kann man die Arbeit, die man investiert, um BeispielCode zum Laufen zu bringen auch gleich in eine eigene Lösung investieren, aber damit macht jeder sein Ding und die Gemeinde wächst nicht zusammen, sondern klifft aus einander. :roll:
Kinder an die Macht http://scratch.mit.edu/
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Xaby hat geschrieben:Und was macht CreateDraw() /:->

Wir sind der Lösung auf der Spur, mühsam ernährt sich das Eichhörnchen :) :allright:
Ich denke das kannst du vernachlässigen und einfach den If Block löschen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

DarkDragon hat geschrieben:

Code: Alles auswählen

Procedure FindNextExp(Val)
  While a < Val
    a = 1 << b
    b + 1
  Wend
  ProcedureReturn a
EndProcedure
Es sucht den nächsten 2^n Wert, sodass 2^n >= Val
Passt jetzt vllt nicht zum Thema, aber deine Procedure ist nur bei kleinen Zahle schnell genug, werde die Zahlen jedoch sehr groß
dann ist diese Procedure hier schneller:

Code: Alles auswählen

Procedure FindNextExp(Val) 
 a = Round(Log(Val)/Log(2),1)
 ProcedureReturn 1 << a 
EndProcedure
EDIT: habs meine noch schneller gemacht
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

STARGÅTE hat geschrieben:
DarkDragon hat geschrieben:

Code: Alles auswählen

Procedure FindNextExp(Val)
  While a < Val
    a = 1 << b
    b + 1
  Wend
  ProcedureReturn a
EndProcedure
Es sucht den nächsten 2^n Wert, sodass 2^n >= Val
Passt jetzt vllt nicht zum Thema, aber deine Procedure ist nur bei kleinen Zahle schnell genug, werde die Zahlen jedoch sehr groß
dann ist diese Procedure hier schneller:

Code: Alles auswählen

Procedure FindNextExp(Val) 
 a = Round(Log(Val)/Log(2),1)
 ProcedureReturn 1 << a 
EndProcedure
EDIT: habs meine noch schneller gemacht
Die Zahlen gehen nur bis 4096 momentan ;-) . Du wirst doch keine Textur erstellen die größer ist :freak: . Und wenn du das dann doch so wie ETQW mit den Mega Textures machst dann brauchst du das schonmal am wenigsten.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

ach so, ok...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Schon jemand eine Idee, wie ein Würfel ohne Ogre geht?

http://www.purebasic.fr/german/viewtopi ... &start=120

:?
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Nix neues bei den Würfelprogrammierern? :? /:-> :oops: :roll: :evil:
Kinder an die Macht http://scratch.mit.edu/
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

kennst du schon NeHe?

-> http://nehe.gamedev.net/

edit:

oder wenn's unbedingt in pb sein muss:

http://www.purebasic.fr/english/search.php

einfach nach "NeHe"
dann eine nach der anderen lesson ansehen...
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Kinder an die Macht http://scratch.mit.edu/
Antworten