Generelle Fragen zu Shadern (hlsl)
Verfasst: 15.01.2012, 13:08
Hallo zusammen,
Ich moechte euch heute mit ein paar Fragen rund um Pixel- und Vertexshader quaelen :shock: . Fangen wir an! :D
Einige Fragen beziehen sich auf dieses Konstrukt:
SV_POSITION: Wofuer steht SV? (ShaderVertex?)
Unterschied SV_POSITION und POSITION?
Wofuer "hpos" stehen koennte ist mir unklar, ist damit "homogenous" pos gemeint?
(Wieso) Gibt es fuer Normalen keinen "spezifizierer", da hier ueber "TEXCOORDS2" ausgewichen wird?
Fuer FOG gibts doch auch einen, und Normalen werden doch sicher haeufiger als fog gebraucht.
Ist es sinnvoll, World -, View-, und Projectionmatrix einzeln zu uebergeben oder besser eine einzige "worldviewprojection"-Matrix zu uebergeben? Vor- und Nachteile?
Zu:
Was spezifiziert "SV_Target0"? Vermutlich das "Standardziel". Was genau ist damit gemeint, was sind alternative Werte (SV_Target2?) und was ist damit erreichbar?
Muss die Reihenfolge der Member des Constant Buffers in Cpp-Datei und Shader uebereinstimmen?
Wie genau haut das mit dem Pixelshader hin?
Setze ich 'nen Shader a 'la, gefolgt von einer draw-methode werden "nur" die pixel des gezeichneten geshaded, richtig? Was muesste ich tun, moechte ich das ganze Programm in einen sepia-ton versetzen? Muss ich dafuer extra ein 4-eck anlegen, das dann vor die kamera halten, einfaerben und mit transparenz rendern?
Ich moechte euch heute mit ein paar Fragen rund um Pixel- und Vertexshader quaelen :shock: . Fangen wir an! :D
Einige Fragen beziehen sich auf dieses Konstrukt:
Code: Alles auswählen
struct VS_OUTPUT
{
float4 hpos : SV_POSITION;
float2 texcoords : TEXCOORDS0;
float3 normal : TEXCOORDS2;
float3 pos : POSITION;
float fog : FOG;
};
Unterschied SV_POSITION und POSITION?
Wofuer "hpos" stehen koennte ist mir unklar, ist damit "homogenous" pos gemeint?
(Wieso) Gibt es fuer Normalen keinen "spezifizierer", da hier ueber "TEXCOORDS2" ausgewichen wird?
Fuer FOG gibts doch auch einen, und Normalen werden doch sicher haeufiger als fog gebraucht.
Ist es sinnvoll, World -, View-, und Projectionmatrix einzeln zu uebergeben oder besser eine einzige "worldviewprojection"-Matrix zu uebergeben? Vor- und Nachteile?
Zu:
Code: Alles auswählen
float4 PxShader(VS_OUTPUT input) : SV_Target0
Muss die Reihenfolge der Member des Constant Buffers in Cpp-Datei und Shader uebereinstimmen?
Wie genau haut das mit dem Pixelshader hin?
Setze ich 'nen Shader a 'la
Code: Alles auswählen
devcon->PSSetShader(pixelshader, nullptr, 0)