(Echtzeit-)Raytracing-Engine

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Alles Klar NTQ, dann warte ich bis du die Bugs soweit enternt hast und
es dann auf PB 4.. umgeschrieben hast.
So schön, wie deine Beispiele aussehen kann ich nur sagen, toy, toy, toy.

Das wäre dann eine super Sache für eine CNC-Simulation für Metalische
Darstellungen des Fertigteils :allright: .

Grüße ..Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
DarkSoul
Beiträge: 689
Registriert: 19.10.2006 12:51

Beitrag von DarkSoul »

da sist verdammt cool, einst wirst du die in pb integrierte 3d-engine ersetzen. mussu noch poligonale figuren mit texturen einbauen und vielleicht noch n bisschen schneller. Wird auch mal zeit, dass PowRay mal ein bisschen konkurrenz bekommt...
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Ich hab jetzt endlich mal etwas zum Ausprobieren für euch da.
Dargestellt sind alle Objekte, die es bisher gibt.

Hier ein Screenshot von der Demo:
Bild
Hier der Link zur EXE

Und hier die Erklärung:

Maus - Drehung um x- und y-Achse
A, Y - Drehung um z-Achse
S, X - Sichtfeld der Kamera (FOV)
D, C - Gammakorrektur
F, V - Größe der Pixel
Links, Rechts - strafen
Hoch, Runter - Vorwärts, Rückwärts
STRG+Hoch, STRG+Runter - Hoch, Runter
P - Pause
STRG+P - Weiter
1 bis 9, 0 - Pixelgröße 1 bis 10
ESC - Beenden

Im StartRequester lässt sich die Anzahl der zu benutzenden Threads
bestimmen, mit denen gerendert werden soll. Bei Leuten, die zwei
Prozessoren haben, könnte das etwas Schub bringen.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

gut gemeinter Rat: geh endlich vom StartDrawing / StopDrawing weg! Benutz
doch lieber OpenGL für die Rendergeschichten.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Wieso?
Das macht doch keinen bemerkbaren Unterschied beim Rendern?

Oder siehst du einen anderen Nachteil?
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Benutz mal die Boardsuche. Soweit ich mich errinern kann gibt es genug
Benchmarks die zeigen, dass die 2D Drawing operationen von PB grotten
lahm sind.
Bild
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Also die Demo ist sau cool ... natürlich nicht besonders schnell ... aber
das Ergebnis ist dennoch sau geil^^

Also bei den FPS-Werten spielt der 2D-Drawingbefehl keine wirkliche rolle
mehr, zumindest wenn er diesen immer nur ein mal pro Frame benutzt,
und davon kann man ja wohl ausgehen :D ... spielt ja keine rolle mehr ob
man nun 0.3 FPS hat, oder 0.4 -.-

Aber es schadet auch nicht ... MVXA gibt zumindest dann ruhe *gg*
behalts halt im Hinterkopf und wenne mal nen bischen Zeit hast ... und
nicht weist wofür du die Zeit nutzen sollst, machst die 2D-Drawingbefehle
raus :D

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

das zeitintensive Ding beim Raytracen ist doch eigentlich das Berechnen und nicht das Anzeigen, oder irre ich mich da?
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

MVXA hat geschrieben:Benutz mal die Boardsuche. Soweit ich mich errinern kann gibt es genug
Benchmarks die zeigen, dass die 2D Drawing operationen von PB grotten
lahm
sind.
Das mit dem "grotten lahm" hat mich mal interessiert und ich hab mal
meinen Code von "Lust auf ein paar Farben?" rausgeholt und ihn auf
WindowOutput umfunktioniert, wie ich es auch bei meiner
RayTracing-Engine verwende.

Ergebnis bei 600x400:
WindowOutput: 2 FPS
ScreenOutput: 16 FPS

Also doch ein deutlicher Unterschied. Das hätte ich nicht gedacht. :freak:
Naja, da merkt man mal wieder, dass ich mehr Mathematiker und
Anwendungsprogrammierer bin, als dass ich viel mit Grafik mache.

Ich werde die Engine dann mal umfunktionieren.

Das einzige Problem wird dann allerdings sein, dass es dann mit mehr als
einem Thread nicht mehr funktioniert, weil ich schlecht in zwei
unabhängigen Threads FlipBuffers() aufrufen kann, wenn der eine schon
fertig ist, der andere aber nicht.
Ich müsste dazu dann die Threads synchronisieren, dass sie erst dann
FlipBuffers() aufrufen, wenn jeder seinen Abschnitt gerendert hat.
Na mal schauen, was sich da machen lässt.

Ich mache dann mal einen Test mit ScreenOutput() und vergleiche die
FPS, oder noch besser die SPF. <)
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Machs doch irgendwie allgemeiner!
Plotte einfach in einen Speicherbereich mit Pointern, dann kannst du auch
das Format selbst vorgeben (RGB8, RGB16, RGBA, oder sogar mit Tiefen-
Kanal). Wie nun der Anwender das ganze verarbeitet, bleibt ihm überlassen.

Der Einfachheit halber kannst du natürlich noch einfache Funktionen machen.


übrigens, sauber! :allright:
Antworten