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

Aktuelle Zeit: Fr Jul 18, 2025 08:02

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



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Mi Jun 15, 2011 18:58 
Offline
DGL Member

Registriert: Fr Apr 08, 2011 23:41
Beiträge: 19
Programmiersprache: Free Pascal, ASM
Hier koennt ihr eure meinungen zum projekt sagen.. :) Ich freu mich fur ein feedback.

_________________
Mich interesiert es nicht in welcher sprache du programmiers. Mich interesiert, was du in dieser sprache programmieren kannst.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 15, 2011 19:51 
Offline
DGL Member
Benutzeravatar

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

Ich hab mir das mal geladen und muss sagen... alle Achtung, dafür das es ein CPU-Renderer ist, noch dazu selbstgebastelt!
Also mein alter AMD-4-Kerner schafft das mit durchschnittlich 47 Frames/Sekunde im kleinen Fenstermodus und wenn ich auf fast Fullscreen skaliere sinkt die Rate in den Keller. (irgendwie logisch). Aber witzig^^
Beim skalieren des Renderers verpixelt sich die Animation etwas, also...ist warscheinlich auf ne fixe Auflösung eingestellt, und skaliert einfach das Bild am Ende, oder?
Aber echt geile Idee =)

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 15, 2011 20:12 
Offline
DGL Member

Registriert: Fr Apr 08, 2011 23:41
Beiträge: 19
Programmiersprache: Free Pascal, ASM
Ida hat geschrieben:
Hallihallo,

Ich hab mir das mal geladen und muss sagen... alle Achtung, dafür das es ein CPU-Renderer ist, noch dazu selbstgebastelt!
Also mein alter AMD-4-Kerner schafft das mit durchschnittlich 47 Frames/Sekunde im kleinen Fenstermodus und wenn ich auf fast Fullscreen skaliere sinkt die Rate in den Keller. (irgendwie logisch). Aber witzig^^
Beim skalieren des Renderers verpixelt sich die Animation etwas, also...ist warscheinlich auf ne fixe Auflösung eingestellt, und skaliert einfach das Bild am Ende, oder?
Aber echt geile Idee =)


Danke Ida. Und es erbietet nur mit einem thread, mit dem haupt-thread. Die aflosung solte sich beim wechseln der greose des fensters auch andern. Ich hab den direct-draw noch nicht so bug-free. Ich konzentriere mich mehr auf das engine. Wen ich probleme mit der direct-draw kriege, warted die opengl, oder gdi auf mich :D Ich hab auch einen 4-kerner aber ein intel. Schoen zu wissen dass es auch am AMD leuft. :)

_________________
Mich interesiert es nicht in welcher sprache du programmiers. Mich interesiert, was du in dieser sprache programmieren kannst.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 15, 2011 20:37 
Offline
DGL Member

Registriert: Do Jun 28, 2007 17:58
Beiträge: 193
Programmiersprache: Pascal, C
Hi,

sieht wirklich interessant aus, dein Projekt und läuft auch auf meinem Rechner flüssig (~70-90FPS). Dafür alle Achtung!

Beim Überfliegen des Quelltextes ist mir jedoch aufgefallen, dass dieser leider recht unstrukturiert ist, was der Weiterverwendbarkeit nicht unbedingt zu Gute kommt. Auch sind Include-Dateien in Pascal (welches schließlich ein Unit-System besitzt, das einen C entwickler neidisch werden lässt) nicht wirklich state-of-the-art

Auch solltest du deinen Software-Renderer und alles drum herum logisch Sauber davon trennen - insbesondere sollte der Software-Remderer keinerlei Abhängigkeiten zu Betriebsystemfunktionen oder externen Bibliotheken haben. Mein Tipp: Unterteile deinen "src"-Ordner in mehrere Unterprojekte (wie "renderer", "loader", "utils"), wobei diese keinerlei Abhängigkeiten zueinander haben sollten. Insbesondere sollte der Renderer keine eigene Ausgabe haben, sondern lediglich auf ein Bitmap im Speicher rendern. Um die Ausgabe kann sich ja der Anwender des Renderers kümmern/kannst du ja deine aktuelle Methode (DirectDraw) im "utils"-Unterprojekt bereitstellen.

Wie gesagt, dein Projekt ist soweit schon super, wenn du es aber nicht nur als "Techdemo" siehst, sondern auch andere Leute daran Teil haben möchtest, ist oben beschriebenes Vorgehen jedoch einiges besser.

Andreas

_________________
http://audorra.sourceforge.net//http://andorra.sourceforge.net


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 15, 2011 23:10 
Offline
DGL Member

Registriert: Fr Apr 08, 2011 23:41
Beiträge: 19
Programmiersprache: Free Pascal, ASM
igel457 hat geschrieben:
Hi,

sieht wirklich interessant aus, dein Projekt und läuft auch auf meinem Rechner flüssig (~70-90FPS). Dafür alle Achtung!

Beim Überfliegen des Quelltextes ist mir jedoch aufgefallen, dass dieser leider recht unstrukturiert ist, was der Weiterverwendbarkeit nicht unbedingt zu Gute kommt. Auch sind Include-Dateien in Pascal (welches schließlich ein Unit-System besitzt, das einen C entwickler neidisch werden lässt) nicht wirklich state-of-the-art

Auch solltest du deinen Software-Renderer und alles drum herum logisch Sauber davon trennen - insbesondere sollte der Software-Remderer keinerlei Abhängigkeiten zu Betriebsystemfunktionen oder externen Bibliotheken haben. Mein Tipp: Unterteile deinen "src"-Ordner in mehrere Unterprojekte (wie "renderer", "loader", "utils"), wobei diese keinerlei Abhängigkeiten zueinander haben sollten. Insbesondere sollte der Renderer keine eigene Ausgabe haben, sondern lediglich auf ein Bitmap im Speicher rendern. Um die Ausgabe kann sich ja der Anwender des Renderers kümmern/kannst du ja deine aktuelle Methode (DirectDraw) im "utils"-Unterprojekt bereitstellen.

Wie gesagt, dein Projekt ist soweit schon super, wenn du es aber nicht nur als "Techdemo" siehst, sondern auch andere Leute daran Teil haben möchtest, ist oben beschriebenes Vorgehen jedoch einiges besser.

Andreas


Tja ich weis das der src code nicht so sauber aussieht. Ich habe sehr viele ideen und hab keine zeit fur die shoenheit des codes oder fur die kommentare. Aber ich nehm mir die zeit um die ordnung in das chaos zu bringen. Viele funktionen sind als prototypes fur das moment so sie sind enfach nur geschrieben um zu funktionieren. Spater werde ich sie zum units ordnen oder durch bessere functionen ersetzen. Nun zum include_deteien. Der freepascal kann nich assembler funktionen kopieren als wenn man hinter einer pascal procedure eine INLINE direktive schreibt. Also mach ich das mit der include-detai. Mit diesen trick hab ich kein push-pop-call-ret-slow-down fur die zeit-kritischen procedure wie die tile-proceduren. Ubrigens, die include deteien helfen mir den code besser zu lesen. Wie zb. die unit fenomenon_math. Wenn ich alle funktionen in eine datein reinstecke, hab ich problem eine function zu finden. Ida, danke fur die tips. Ich werde es mir merken. Aber biss der freepascal keine inline assembler routine kopieren kann, kann ich mit der include datei nichts machen. Und ubrigens manchmal hatte ich bei units probleme mit "circular depencies" oder wie es heisst.

Uber das project. Fur nechstes werde ich eine neue struktur fur die texture machen. Die ist je kodiert in 8x8 tilen aber da gibt es probleme wenn mann fur die bilinear interpolation 1 und 3 nachbar-texel lesen must und wenn man an der rechten und unteren ecke ist, must man die texel aus einer anderen tile lesen musen. Mit 9x9 tile ist das kein problem. Ok, die textur wird ein bischen groesser aber mir geht es um schnelligkeit. Wie so 9x9? tja ich kopiere aus einer enderen tile die texels fur die rechte and von einer enderen tile fur die unteren texels. Das hilf mir nicht von einer enderen tile zu lesen wen ich die 4 texels lese am rande der momentalen tile. Die Cpu-cache bleibt sauber.

_________________
Mich interesiert es nicht in welcher sprache du programmiers. Mich interesiert, was du in dieser sprache programmieren kannst.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Jun 16, 2011 09:52 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
Bin ja immer ein großer Fan von SW-rendering und von daher erst einmal ein dickes Lob auch von meiner Seite :)
Hier mal noch ein paar Denkansätze die mir so spontan einfallen:
-Polygone sollten nach Möglichkeit vermieden werden da sie in der Regel langsamer sind.
-Für ein bissl Eyecandy kannst du ohne Probleme auf Radiosity setzen (es sagt ja schließlich niemand das es für jeden Pixel Echtzeit sein muss oder? :P)
-Dein Renderer sollte nicht auf einer großen Schleife sondern stattdessen eher auf einen Eventsystem aufbauen.

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Jun 16, 2011 20:13 
Offline
DGL Member

Registriert: Fr Apr 08, 2011 23:41
Beiträge: 19
Programmiersprache: Free Pascal, ASM
yunharla hat geschrieben:
Bin ja immer ein großer Fan von SW-rendering und von daher erst einmal ein dickes Lob auch von meiner Seite :)
Hier mal noch ein paar Denkansätze die mir so spontan einfallen:
-Polygone sollten nach Möglichkeit vermieden werden da sie in der Regel langsamer sind.
-Für ein bissl Eyecandy kannst du ohne Probleme auf Radiosity setzen (es sagt ja schließlich niemand das es für jeden Pixel Echtzeit sein muss oder? :P)
-Dein Renderer sollte nicht auf einer großen Schleife sondern stattdessen eher auf einen Eventsystem aufbauen.


Hey yunharla. ;)

Zum polygonen. Tja mit der scanline technik ist es nicht so schwer einen polygon zu zeichnen aber mit der half-space ist es die reinste hoelle.

Uber die statische radiositeat habe ich nachgedacht und die von Source engine ist simple aber richtig gut. Tja aber ich mechte auch dynamishe schaten, so hab ich nachgedacht, das ich nur die sekunderen abprall lichtstrahle statish werden und die lichter auch. Dynamische lichten werden nur mit dem directen licht beluechten.
ODER
Ich denke auch uber diese technik nach http://www6.incrysis.com/Light_Propagation_Volumes.pdf
Aber das ist die weite zukunft

Der eventsystem ist auch eine gute idee. Ich denke momental arbeiten so die fenster, tastatur und maus funktionen, Die tastatur und maus sind modulere funktionen die sich selber bei der inizialisierung einhaken.


Ok jungs. Ich muss auch ein lob an euch geben. Sie geben mir richtig gute ideen uber welche ich nachdenken kann. :) Danke.

_________________
Mich interesiert es nicht in welcher sprache du programmiers. Mich interesiert, was du in dieser sprache programmieren kannst.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Jun 16, 2011 21:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 08, 2010 18:41
Beiträge: 769
Programmiersprache: Gestern
hatte in quake 2 das mal aus jucks eingebaut das dynamische Lichter für jeden betroffenen Lightmaptexel einen Strahl zurück zur Lichtquelle
schicken und das hatte so 20-40fps verlust ergeben (was natürlich ein Witz ist wenn man bedenkt wie schnell dieses alte Teil ist lol)

Ansonsten kannst du immer noch auf einen halbwegs modernen Rechner eine VM für MIMD aufsetzen die dann Radiosity in Echtzeit berechnet...
kam damit allerdings bisher nur auf eine 320*240 Auflösung da ich nicht unter 1kb an Speicher pro Thread kam :(

_________________
Meine Homepage


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Jun 18, 2011 17:34 
Offline
DGL Member

Registriert: Fr Apr 08, 2011 23:41
Beiträge: 19
Programmiersprache: Free Pascal, ASM
yunharla hat geschrieben:
hatte in quake 2 das mal aus jucks eingebaut das dynamische Lichter für jeden betroffenen Lightmaptexel einen Strahl zurück zur Lichtquelle
schicken und das hatte so 20-40fps verlust ergeben (was natürlich ein Witz ist wenn man bedenkt wie schnell dieses alte Teil ist lol)

Ansonsten kannst du immer noch auf einen halbwegs modernen Rechner eine VM für MIMD aufsetzen die dann Radiosity in Echtzeit berechnet...
kam damit allerdings bisher nur auf eine 320*240 Auflösung da ich nicht unter 1kb an Speicher pro Thread kam :(


Tja zur programierung must man seine ideen ach mal testen und sehen was passiert und wie schnell es ist. Wie ich als ich die triangle-tile-coverage stack idee hatte. Und ich war wirklich uberascht. Oder jetzt. Ich habe an manchen stelllen die instruktion MOVNTDQ mit MOVAPS oder MOVDQA eingetauscht, und das program leuft jetzt mit 52 fps. Tja wie so habe ich dann die istruktion MOVNTDQ dort hingeschrieben? Frueher war der program vielecht nich so gut fur die cache optimaliziert und die instriktion MOVNTDQ war einfach besser fur die schnelligkeit. Abe jetzt, spater wenn die ram-zugriffe weniger sind und die daten sind mehr aus der cache als aus der ram gelesen sind die anderen zwei instruktionen besser. Bin auch uberrascht. ;) Tja es ist schoen zu sehen wen die fps von 44 zur 52 hoch geht ;)

_________________
Mich interesiert es nicht in welcher sprache du programmiers. Mich interesiert, was du in dieser sprache programmieren kannst.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Jun 20, 2011 00:43 
Offline
DGL Member

Registriert: Fr Apr 08, 2011 23:41
Beiträge: 19
Programmiersprache: Free Pascal, ASM
Hallo jungs. Moechte mal fragen. Was meinen sie. Ist es so wichtig, das ich die per-pixel-clipping funktion mit der camera-ebene mache oder lass ich es bei per-tile-clipping ? Ubrigens... bilinear-filtering ist jetzt drin und es leuft mit 46 fps. :)

_________________
Mich interesiert es nicht in welcher sprache du programmiers. Mich interesiert, was du in dieser sprache programmieren kannst.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jul 03, 2011 00:04 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Kurzes Feedback:
Hardware: ATI Mobility FireGL V5700
Fenstermodus: ca 60FPS
Fullscreen (1920x1200): ca 10FPS

Im Anhang ein Screenshot wie es bei mir aussieht. Die Textur wirkt sehr psychedelisch.


Dateianhänge:
Dateikommentar: Screenshot
phenomenon3d.JPG
phenomenon3d.JPG [ 137.88 KiB | 13442-mal betrachtet ]

_________________
Blog: kevin-fleischer.de und fbaingermany.com
Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jul 03, 2011 14:27 
Offline
DGL Member

Registriert: Fr Apr 08, 2011 23:41
Beiträge: 19
Programmiersprache: Free Pascal, ASM
Flash hat geschrieben:
Kurzes Feedback:
Hardware: ATI Mobility FireGL V5700
Fenstermodus: ca 60FPS
Fullscreen (1920x1200): ca 10FPS

Im Anhang ein Screenshot wie es bei mir aussieht. Die Textur wirkt sehr psychedelisch.


Ok-ok was fur ein cpu hast du? Ich denke die texture-sampling routine macht probleme. Versuche das altere demo : http://sourceforge.net/projects/phenome ... r/download. Wenn es normal leuft, dann weiss ich wo das problem ist.

Ich muss mal entlich eine sse-version-detection routine einbaunen. :?

_________________
Mich interesiert es nicht in welcher sprache du programmiers. Mich interesiert, was du in dieser sprache programmieren kannst.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jul 03, 2011 15:02 
Offline
DGL Member
Benutzeravatar

Registriert: Di Mai 18, 2004 16:45
Beiträge: 2623
Wohnort: Berlin
Programmiersprache: Go, C/C++
Für Battlefield 3 haben die ein Software Renderer geschrieben, welcher für occlusion culling verwendet wird.
Dabei wird nur depthbuffer unterstützt und triangle des physik meshes durch gejagt.
Das ganze wird auf niederer auflösung gemacht und performt auf allen platformen wohl überragend gut, weil tonnenweise binding und draw anweisungen garnicht erst in die render pipeline gehen.

http://www.slideshare.net/DICEStudio/cu ... n-practice

_________________
"Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren"
Benjamin Franklin

Projekte: https://github.com/tak2004


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Jul 03, 2011 21:44 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Herrcoolness hat geschrieben:
Ok-ok was fur ein cpu hast du? Ich denke die texture-sampling routine macht probleme. Versuche das altere demo : http://sourceforge.net/projects/phenome ... r/download. Wenn es normal leuft, dann weiss ich wo das problem ist.


Sorry, aber das geht auch nicht. Das Ergebnis sieht genau so aus.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jul 05, 2011 01:45 
Offline
DGL Member

Registriert: Fr Apr 08, 2011 23:41
Beiträge: 19
Programmiersprache: Free Pascal, ASM
TAK2004 hat geschrieben:
Für Battlefield 3 haben die ein Software Renderer geschrieben, welcher für occlusion culling verwendet wird.
Dabei wird nur depthbuffer unterstützt und triangle des physik meshes durch gejagt.
Das ganze wird auf niederer auflösung gemacht und performt auf allen platformen wohl überragend gut, weil tonnenweise binding und draw anweisungen garnicht erst in die render pipeline gehen.

http://www.slideshare.net/DICEStudio/cu ... n-practice


Ja-ja, wies uber diesen trick. Ich denke dass fallout3 benutzt es auch. Danke fur den link. Ich war auf der DICE seite und fand andere interresante artikel. Danke. ;)

_________________
Mich interesiert es nicht in welcher sprache du programmiers. Mich interesiert, was du in dieser sprache programmieren kannst.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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.010s | 17 Queries | GZIP : On ]