Seite 9 von 10

Verfasst: 21.12.2006 02:27
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

Verfasst: 21.12.2006 16:31
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...

Verfasst: 21.12.2006 18:45
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.

Verfasst: 21.12.2006 23:14
von MVXA
gut gemeinter Rat: geh endlich vom StartDrawing / StopDrawing weg! Benutz
doch lieber OpenGL für die Rendergeschichten.

Verfasst: 21.12.2006 23:46
von NicTheQuick
Wieso?
Das macht doch keinen bemerkbaren Unterschied beim Rendern?

Oder siehst du einen anderen Nachteil?

Verfasst: 21.12.2006 23:49
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.

Verfasst: 22.12.2006 01:01
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

Verfasst: 22.12.2006 10:59
von AndyX
das zeitintensive Ding beim Raytracen ist doch eigentlich das Berechnen und nicht das Anzeigen, oder irre ich mich da?

Verfasst: 22.12.2006 11:15
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. <)

Verfasst: 22.12.2006 13:11
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: