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

Aktuelle Zeit: Fr Apr 19, 2024 21:38

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



Ein neues Thema erstellen Auf das Thema antworten  [ 418 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6, 7, 8 ... 28  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 30, 2009 19:51 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Mär 09, 2005 15:54
Beiträge: 372
Wohnort: München
Programmiersprache: Delphi, C#, FPC
Kyro hat geschrieben:
So hab mir die Demo mal angeschaut, wirklich beeindruckend!
Unter wine liefs bei mir leider nicht ^^

Das erste ist natürlich erfreulich, das zweite kann ich leider nicht nachvollziehen :?

Kyro hat geschrieben:
Das Einzige, was seltsam ist: es lagt jede Sekunde bei mir, dann wenn auch der MVert/s Wert erneuert wird.

Das ist noch "normal". Ich mache jede Sekunde ein Shadow-Map-Update von jedem statischem Licht. Daher die hänger. Später wird dann die Shadow-Map nur aktuallisiert, wenn sich was im Sichtbereich des Lichtes bewegt hat.

Kyro hat geschrieben:
Würde das Anpassen an die Lichtverhältnisse noch etwas träger machen, so wirds ständig heller und dunkler =)

Hab ich heute schon gemacht - hat mich auch schon etwas generft. Dabei hab ich gleich Nägel mit Köpfen gemacht und gleich auf HDR-Rendering umgestellt. Zwar noch nicht mit Blooming, aber das ist schnell und ohne weiteren Quelltext einbaubar - muss dafür nur den Renderpfad erweitern (was ich komplett per XML machen kann) - und natürlich noch ein paar Shader. Durch den HDR-Renderer hab ich auch den "Überblenden-Shader" neu geschrieben. Der blendet einen nicht mehr so sehr wie der davor, ist jedoch nicht so empfindlich und wirkt natürlicher.

Flash hat geschrieben:
@Logo: die zwei "e"s gefallen mir am besten. Allerdings sollte der Abstand zwischen den anderen Buchstaben auch enger werden. Also alles kompakter.

Mit dem Logo werd ich mal schauen - jedoch erst nach einer kreativen Logo-Pause :-). Das mit dem Zusammenrücken werd ich aber noch mal ausprobieren.

_________________
Aktuelles Projekt: Gael - Development Blog
Website: LightBlackSoft.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 01, 2009 17:26 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
Machs doch mit den Shadowmaps Updates so, dass du jede Sekunde jeweils eine Hälfte der Schatten updatest. So hast du die CPU/GPU Last aufgeteilt und Ruckler dadurch vermieden. Aber wenn das ohnehin dynamisch für jede Lichtquelle wird, ist das auch überflüssig ;)

mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 02, 2009 12:25 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich würde vielleicht immer einen Schatten pro Frame updaten. Damit hast du wirklich verteilte last. Und wenn du nicht immer alle updatest sondern nur die notwendigen, fährst du am besten.

greetings

_________________
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:
BeitragVerfasst: Fr Jul 03, 2009 13:54 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Ich hab mal ein bischen rumprobiert wegen den Artefakten bei den Schatten.
Ich glaube ich habe das Problem, das ich bei mir damals hatte, gefunden. Aber ich kann natürlich nicht sagen ob das bei dir auch die Fehler verursacht.

Alos mal ein bischen Erklärung damit wir nicht aneinander vorbei reden. Wenn ich PCF richtig verstanden habe werden mehrere Texel der Shadowmap verwendet und für jedes bestimmt oder der Pixel im Schatten liegen würde oder nicht. Der Schattenanteil ist dann der Durchschnitt aller Test.
Zumindestens bekommt man groß geglättete Schatten. Damit das besser wird muss man die Position genauer als auf ein Texel bestimmen. Wenn man das macht, ist die (projezierte) Position des Pixels immer zwischen 4 Texeln. Dadurch bekommt man zwei Werte x und y, die die Entferung zum linken und oberen (oder unteren?) Rand angeben.
Mit diesen schwäche ich bei mir die äußeren Texel ab, sozusagen. Nur die Äußeren, weil sich der Effekt innen aufgeben würde.

Falls das irgendwie unverständlich ist, dann kann das daran liegen, das ich mir das selber erarbeitet hab' und später festgestellt habe das es PCF entspricht (denke ich zumindes). Also kann sein das es Abweichungen zum Standardverfahren gibt.

Naja, hier mal der Code-Ausschnitt

Code:
  1.  
  2. float sum = 0.0;
  3. float mult;
  4. for (int j=0;j<filtersize;j++)
  5. {
  6.   for (int i=0;i<filtersize;i++)
  7.   {
  8.      newcoord=vec2(floor(coord[0])-float(filtersize)*0.5+float(i),floor(coord[1])-float(filtersize)*0.5+float(j)); //das berechnet die Position des nächsten Texels
  9.      newvec=(newcoord[0]/MapSize*2.0-1.0)*normalize(cross(look,up))+(newcoord[1]/MapSize*2.0-1.0)*up+look; //das auch
  10.      depth = textureCube(shadow, newvec).x; //Tiefe auslesen
  11.      rd=b/(depth-a);
  12.      mult=1.0;
  13.      //hier ist die Gewichtung
  14.      if (j==0){mult*=1.0-y;}
  15.      if (j==filtersize-1){mult*=y;}
  16.      if (i==0){mult*=1.0-x;}
  17.      if (i==filtersize-1){mult*=x;}
  18.  
  19.      if ((dis-epsilon*dis)<=rd){sum+=mult;} //bestimmt letztendlich ob der Texel Schatten verursacht oder nicht
  20.   }
  21. }
  22. return sum/float((filtersize-1)*(filtersize-1));
  23.  


Also bei dir scheinen die Texel auch noch zusätzlich gewichtet zu sein, aber offensichtlich irgendwie falsch.
Entweder du musst einfach irgendwo ein Minus setzen oder etwas umkehren oder alles ändern. Ohne Kenntnis deines Shaders, ist das schwer zu sagen.
Jedenfalls funktioniert obiges bei mir und erzeugt auch relativ schöne weiche Schatten. Natürlich fehlt für einen funktionierenden Shader noch einiges, weil ich auch mit Cubemaps arbeite und da noch ein paar Berechnungen nötig sind (wenn jemand eine schnelle Möglichkeit kennt bestimmte Texel abzufragen, nur her damit), aber vielleicht hilft das ja und du kannst ein paar Parallelen erkennen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 03, 2009 22:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Mär 09, 2005 15:54
Beiträge: 372
Wohnort: München
Programmiersprache: Delphi, C#, FPC
Hallo Schläfer,

erstmal danke für den Shader, ich werd mir den mal anschauen. Jedoch fällt mir sofort auf: wirklich schnell ist der Shader nicht. Ich weiß ja nicht, wie groß bei dir filtersize ist, jedoch denke ich größer als 1 ;-). Die vielen if's stören mich auch etwas. Ich hab unten mal meinen Shader gepostet (übersetzt von GPU Gems - Chapter 11. Shadow Map Antialiasing). Bei dem hab ich 4 Texturzugriffe und eine if-Anweisung pro Texel - und dafür ist das Ergebnis schon sehr gut. Ich werd mir den Shader auf jeden Fall noch mal genauer anschauen, vielleicht find ich ja noch was. Wenn ich was an dem Filter ändere, werd ich den neuen hier posten.

[glsl]
float lookup(in sampler2DShadow shadowTexture, in vec4 shadowCoord, in vec2 offSet)
{
return shadow2DProj(shadowTexture,
shadowCoord +
vec4(
offSet.x * lightSetup0.w * shadowCoord.w,
offSet.y * lightSetup0.w * shadowCoord.w,
0.0, 0.0
)
).r;
}

// ....

// Percentage Closer Filter
vec2 offset = vec2( float(fract(gl_FragCoord.x * 0.5 ) > 0.25),
float(fract(gl_FragCoord.y * 0.5 ) > 0.25));
offset.y += offset.x;

if (offset.y > 1.1)
offset.y = 0;

vec4 shadCoord = shadowTexCoord;

shadowValue = (lookup(shadowTex0, shadCoord, offset + vec2(-1.5, 0.5)) +
lookup(shadowTex0, shadCoord, offset + vec2( 0.5, 0.5)) +
lookup(shadowTex0, shadCoord, offset + vec2(-1.5,-1.5)) +
lookup(shadowTex0, shadCoord, offset + vec2( 0.5,-1.5))
) * 0.25;

[/glsl]

_________________
Aktuelles Projekt: Gael - Development Blog
Website: LightBlackSoft.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 03, 2009 22:31 
Offline
DGL Member

Registriert: Fr Okt 03, 2008 13:32
Beiträge: 367
Dabei waren das noch nichtmal alle "Ifs" :lol:
Ich denke aber die If-Anweisungen machen nicht so viel aus, schlimmer sind die vielen Texturlookups.
Also "filtersize" ist eigentlich variabel, damit die Schatten weiter hinten mehr geglättet werden. Maximum ist aber 16.
Sicherlich kann man das so in keinem Spiel verwenden, mit der Einstellung läuft das bei mir mit knapp 14 FPS bei 800x600. Sieht aber dafür ganz schick aus.
Bestimmt kann man auch noch einiges optimieren. Ich hab mal nen Screenshot angehangen.

Am Anfang hatte ich auch nur 4 Texel genommen und dann dazwischen interpoliert. Aber 3x3 sieht dann schon wieder ein Stück besser. Das kann man dann ja als Einstellung dem Benutzer überlassen.

Achso, weil meine Grafikkarte keine "samplerCubeShadow" kann, benutze ich auch die normalen Cubemaps, dadurch sind wieder ein paar Rechnungen mehr nötig.


Dateianhänge:
Unbenannt.JPG
Unbenannt.JPG [ 55.96 KiB | 8157-mal betrachtet ]
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 05, 2009 20:11 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
Mir gefällt die Kamera, schön weiche Bewegungen. Ich nehme mal an, du arbeitest mit Beschleunigung und ein bissl Reibung oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 22, 2009 17:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
HI,

ich wollt mir das auch ma angucken und hab mir die GaelEngineTechDemo2 geladen. aber wenn ich starten will kommt n fehler, das meine Graka bestimmte sachen nicht unterstützt. Ich hab ne GeForce 7800GTX und folgende sachen werden nicht unterstützt:
GL_ShadingLanguage_100
GL_VertexBufferObject
GL_FrameBufferObject
GL_ARB_texture_float
GL_ARB_texture_border_clamp
GL_ARB_multitexture
GL_ARB_depth_texture
GL_ARB_Shadow
GL_ARB_texture_none_power_of_two
GL_ARB_occlusion_query

und GL_FrameBufferObject, GL_ARB_multitexture und GL_ARB_texture_none_power_of_two halt ich für sehr unwahrscheinlich, da ich damit auch schon gearbeitet hab...

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 22, 2009 19:22 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Mär 09, 2005 15:54
Beiträge: 372
Wohnort: München
Programmiersprache: Delphi, C#, FPC
Bergmann89 hat geschrieben:
ich wollt mir das auch ma angucken und hab mir die GaelEngineTechDemo2 geladen. aber wenn ich starten will kommt n fehler, das meine Graka bestimmte sachen nicht unterstützt. Ich hab ne GeForce 7800GTX und folgende sachen werden nicht unterstützt:
GL_ShadingLanguage_100
GL_VertexBufferObject
GL_FrameBufferObject
GL_ARB_texture_float
GL_ARB_texture_border_clamp
GL_ARB_multitexture
GL_ARB_depth_texture
GL_ARB_Shadow
GL_ARB_texture_none_power_of_two
GL_ARB_occlusion_query

und GL_FrameBufferObject, GL_ARB_multitexture und GL_ARB_texture_none_power_of_two halt ich für sehr unwahrscheinlich, da ich damit auch schon gearbeitet hab...

MfG Bergmann.

Hast du nen aktuellen Treiber drauf? Wenn ja, bist du dir da sicher? Wenn ja, schau kurz nach. ;-) (ist nicht böse gemeint ;-)). Bist du gerade in ner VM?

Also die Engine setzt zwingend OpenGL 2.0 vorraus, was aber anscheindend unterstützt wird - sonst wäre es ja auch auf der Liste (irgendwie komisch) - und die Grafikkarte unterstützt das auch. Zur Überprüfung benutzt ich einfach die boolean-Variabeln vom dglOpenGl.pas - Header.

Mein PC hat ne GeForce 7600 GT + WinXP: funktioniert
Mein Laptop hat ne ATI HD 3470 X2 + WinVista: funktioniert

_________________
Aktuelles Projekt: Gael - Development Blog
Website: LightBlackSoft.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 22, 2009 20:50 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich habe auch eine GF7800 und bei mir werden die genannten Erweiterungen unterstützt.

_________________
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:
BeitragVerfasst: Mi Jul 22, 2009 22:23 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
hey,

hab die ForceWare-Version 175.19
kann aber den neuen auch net runter laden, weil bei 106MB brauch ich 3 Jahre mit nem Modem -.-

MfG Bergmann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 22, 2009 22:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Mär 09, 2005 15:54
Beiträge: 372
Wohnort: München
Programmiersprache: Delphi, C#, FPC
Ok, ich weiß jetzt nicht, wie die OpenGL-Unterstützung bei der Version aussah - ich denke nicht, dass keine OGL 2.0 Features in dieser Version mit dabei waren :?

*grübel*

Das Problem kann ich jetzt auf die schnelle auch nicht lösen, da ich keinen Ansatzpunkt für das Problem habe :?. Ich glaub aber, ne aktuelle Version wird da schon etwas helfen.

Ich würd dir empfehlen, mal GLView auszuprobieren (Download (1,3 MB)), vielleicht hilft das etwas, das Problem auf den Grund zu gehen.

_________________
Aktuelles Projekt: Gael - Development Blog
Website: LightBlackSoft.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 00:04 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich hab grad ma mein altes Projekt mit dem FBO ausgegraben, un da geht es auch net mehr oO
den alten treiber hab ich auch schon probiert, aber das ändert nix.
da werd ich dann mal n kumpel besuchen un mir ma den neuen treiber saugen. ich meld mich danach nochma...

MfG Bergmann


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 08:22 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also GL_ARB_multitexture ist ein Feature aus OpenGL 1.3 also eins punkt drei. Da muss irgendwas mit deinem Treiber nicht in Ordnung sein. Schau eventuell auch mal nach ob du nicht vielleicht irgendwann zum Testen mal die Hardwarebeschleunung runter gedreht hast. Also "Eigenschaften von Anzeige" > "Einstellungen" > "Erweitert" > "Problembehandlung". Der Regler sollte ganz Rechts sein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 23, 2009 10:45 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Bergmann: der nVidiatreiber hat ein Feature namens Erweiterungsbeschränkung. Für Anwendungen, die für den Erweiterungsstring zu wenig Speicher reservieren, ist das lebensrettend. Neuere Sachen sind dann dementsprechend nicht mehr drin. Such danach mal und schau, ob das versehentlich auf Ein gerutscht ist ;).

greetings

_________________
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  [ 418 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6, 7, 8 ... 28  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 47 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.686s | 19 Queries | GZIP : On ]