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

Aktuelle Zeit: So Aug 17, 2025 18:01

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit ARBvp1.0 Shader
BeitragVerfasst: Mi Feb 22, 2006 22:41 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich muß für ein Programm ARBvp1.0 verwenden und kann leider nicht auf glSlang zurückgreifen... problem ist, ich hab 0 ahnung von dem alten Shaderkram :)

Das ist mein Shader:
Code:
  1. !!ARBvp1.0
  2.  
  3. # Eingangsattribute
  4. ATTRIB iPos    = vertex.position;
  5. ATTRIB iNormal = vertex.normal;
  6.  
  7. # Programmparameter
  8. PARAM mvinv[4]    = { state.matrix.modelview.invtrans };
  9. PARAM mvp[4]      = { state.matrix.mvp };
  10. PARAM lightDir    = state.light[0].position;
  11. PARAM halfDir     = state.light[0].half;
  12. PARAM specExp     = state.material.shininess;
  13. PARAM ambientCol  = state.lightprod[0].ambient;
  14. PARAM diffuseCol  = state.lightprod[0].diffuse;
  15. PARAM specularCol = state.lightprod[0].specular;
  16.  
  17. # Temporäre Variablen
  18. TEMP eyeNormal, temp, dots, lightcoefs;
  19.  
  20. # Ausgangsattribute
  21. OUTPUT oPos   = result.position;
  22. OUTPUT oColor = result.color;
  23.  
  24. # Vertex in Clipkoordinaten umwandeln
  25. DP4 oPos.x, mvp[0], iPos;
  26. DP4 oPos.y, mvp[1], iPos;
  27. DP4 oPos.z, mvp[2], iPos;
  28. DP4 oPos.w, mvp[3], iPos;
  29.  
  30. # Normale in eyespace transformieren
  31. DP3 eyeNormal.x, mvinv[0], iNormal;
  32. DP3 eyeNormal.y, mvinv[1], iNormal;
  33. DP3 eyeNormal.z, mvinv[2], iNormal;
  34.  
  35. # Diffuses und spekulatives Punktprodukt berechnen
  36. # und unter Nutzung von LIT die
  37. # Beleuchtungskoeffizienten berechnen
  38. DP3 dots.x, eyeNormal, lightDir;
  39. DP3 dots.y, eyeNormal, halfDir;
  40. MOV dots.w, specExp.x;
  41. LIT lightcoefs, dots;
  42.  
  43. # Farbbestandteile sammeln und addieren
  44. MAD temp, lightcoefs.y, diffuseCol, ambientCol;
  45. MAD oColor.xyz, lightcoefs.z, specularCol, temp;
  46. MOV oColor.w, diffuseCol.w;
  47. MUL oColor.xyz, temp, vertex.color.primary;
  48.  
  49. # Texturkoordinaten durchschleifen
  50. MOV result.texcoord, vertex.texcoord;
  51.  
  52. END


Hab ich mal irgendwann irgendwo hier im Forum gefunden gehabt :) (Glaub von SoS war der)
Problem an dem Shader ist das alle Polygone von hinten schwarz sind...

An und für sich passiert das ja weil die Face-Normale von dem Licht wegzeigt = Es wird schwarz.
Wie muß ich'n den Shader jetzt ändern damit es egal ist ob die FaceNormale in die richtung vom Licht zeigt oder nicht??
Also an und für sich nur irgendwo ein "Abs()" einbauen, oder??

Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Feb 25, 2006 20:04 
Offline
DGL Member

Registriert: Di Sep 06, 2005 20:40
Beiträge: 26
Wohnort: Aarhus, Denmark
edit: aha.. ich habe es nicht alles versteht..

vielleicht wie dieses?

DP3 dots.x, eyeNormal, lightDir;
ABS dots.x, dots.x;
DP3 dots.y, eyeNormal, halfDir;
ABS dots.y, dots.y;
MOV dots.w, specExp.x;
LIT lightcoefs, dots;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 26, 2006 15:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Jap genau das war's! danke :)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 23 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.017s | 20 Queries | GZIP : On ]