Probleme bei Vertex-Pixel Shadern
-
Hi,
Naja, ok Schade.Also ich hab gerade versucht, je weiter ein Pixel weg ist, je mehr wird der Pixel mit seiner Farbe multipliziert.. Der Effekt sollte Dunkel-Hell herrauskommen wenn sich die Vertices bewegen(weg,her). Aber das funtzt nicht.
Vielleicht findet ihr ein Fehler..
// Vertex Shader for 1.1 // ************ Register Defines ************************** \\ #define VertexPosition v0 #define VertexNormal v1 #define VertexTexCoord v2 #define VertexColor v3 #define LightVertexDiff r0 #define LightVertexVec r1 #define ProjectionMatrix c0 #define LightPosition c6 #define LightDirection c5 #define AmbientLight c4 // ************ Output Register ************************** \\ #define out_2DVertexPosition oPos #define out_PixelColor0 oD0 #define out_PixelColor1 oD1 #define out_TextureColor0 oT0 #define out_TextureColor1 oT1 #define out_TextureColor2 oT2 #define out_TextureColor3 oT3 #define out_TextureColor4 oT4 #define out_TextureColor5 oT5 #define out_TextureColor6 oT6 #define out_TextureColor7 oT7 vs.1.1 dcl_position0 VertexPosition dcl_normal0 VertexNormal dcl_texcoord0 VertexTexCoord dcl_color0 VertexColor ; project 3d vertex to 2d coord m4x4 out_2DVertexPosition, VertexPosition, ProjectionMatrix sub r1,c6, v0 dp3 r1,r1,r1 ; quadratische laenge rsq r2,r1.x ;reciproxe wurzel mul r1,r1,r2 ;division durch die wurzel ... sqrt(x)=x/sqrt(x rcp r3, r1 mul out_PixelColor0, r3, VertexColor
Bye
-
" Aber das funtzt nicht. " undefined const
bitte definiere das
rapso->greets();
-
HM ?
-
was passiert stattdessen? bzw. welches ergäbniss hast du genau erwartet und wie genau unterscheidet sich das bzw. was siehst du was nicht so sein sollte?
rapso->greets();
-
Die Farbe ist von der Ausgangsfarbe verdunkelt und bleibt konstant.
-
wie gross ist das objekt dass die farbe haben soll? die range der farben geht von 0.f bis 1.f, falls dein objekt also viel größer ist als 1.f (in ausmassen) oder viel kleiner, dann siehst du nicht den 0 bis 1 bereich der den farbverlauf hat.
schau ma auf meine engine hp, da ist ein screenie wie's ausschaut wenn man die position reinschreibt.
dafür hab ich die inverse der objektgröße als const gespeichert (also 1.f/größe) und dann mit dem längenwert jedes punktes multipliziert. (das dann aber im pixelshader und nicht im vertexshader)
vielleicht ist dein objekt nicht hoch im zentrum und hat von vorherein schon werte die die ganze zeit über 1 oder unter 0 sindrapso->greets();
-
Ich hab ein ganz normales viereck ( 2 dreiecke ) :
VERTEX v[4] = { { -1.0f, -1.2f, 0.0f, /*0.0f, 0.0f, -1.0f, /*0.0f, 1.0f,*/ D3DCOLOR_ARGB( 255, 255, 0, 0 ) }, { -1.0f, 1.2f, 0.0f, /*0.0f, 0.0f, -1.0f, /*0.0f, 0.0f,*/ D3DCOLOR_ARGB( 255, 255, 255, 0 ) }, { 1.0f, 1.2f, 0.0f, /*0.0f, 0.0f, -1.0f, /*1.0f, 0.0f,*/ D3DCOLOR_ARGB( 255, 255, 0, 255 ) }, { 1.0f, -1.2f, 0.0f, /*0.0f, 0.0f, -1.0f, /*1.0f, 1.0f,*/ D3DCOLOR_ARGB( 255, 255, 255, 255 ) }, };
Bye
-
und die siehst du beide _ganz_ bloss in der falschen färbung?
rapso->greets();
-
Hi,
Jo, sind beide da. Also ich seh auch die Farben. Nur verdukelt und konstant.
-
Komisch, das müsste gehen
-
Komisch, das müsste gehen
-
das problem ist, dass du nur 4punkte hast und die sind recht weit von der mitte weg, das heißt, die sind schon relativ dunkel und da du nur pro vertex die farben berechnest, wird zwischen den 4 dunklen stellen interpoliert.
müßte also dunkel sein. weil du ja die farben durch die entfernung teils und nur 4 relativ weit entfernte punkte hast, also teilst du immer durch >1 und die farben werden dunkler.
set mal einen punkt noch in die mitte (oder generier dir ein höcher tesseliertes mesh)
rapso->greets();
-
Hi,
Die Vertices bewegen sich aber ständig ?
-
falls du sie _nur_ mit der viewmatrix bewegst:
sub r1,c6, v0
da nimmste die untransformierten werde
rapso->greets();
-
Hi,
falls du sie _nur_ mit der viewmatrix bewegst:
Ich denk, ich weiß woran es light.......
Ich verwende immer den untranformierten vertex
-
lol
das schrieb ich doch
-
Hi,
funtzt nu wunderbar. THX
Achja:
Gibt es eig. große unterschiede zwischen HLSL und asm ?
Oder ist es egal ?Bye
-
BBC schrieb:
Hi,
funtzt nu wunderbar. THX
Achja:
Gibt es eig. große unterschiede zwischen HLSL und asm ?
Oder ist es egal ?Bye
Kloar. HLSL und Cg sind C-like, und nicht ASM...
-
das lustige dabei ist, dass die ganzen c++ wörter auch schon reserviert sind.. vielleicht hat man ja in dx10 cg++
scene->objects->LOD->mesh->poly->next->next->next->next->draw();
rapso->greets();