Je tente de faire tourner ça sous FXComposer, et j’ai une erreur comme quoi ce serait pas supporté par mon hardware, pourtant une 6600GT, qui supporte VS3.0 et PS3.0 …
Je comprends pas trop le problème, ça parle à quelqu’un ?
Eventuellement, si quelqu’un a un trick pour connaître la position du pixel projeté par le pixelshader sans utiliser les shader3.0 …
Et si tu vires la ligne VertexShader = null; ? ca donne quoi ? avec mon moteur de post process, si je mets ce genre de ligne, ca me fait un ecran tout noir
(désolé de répondre si tard, j’ai pas eu le mail d’avertissement de réponse au topic)
Alors effectivement, la technique compile si j’ajoute un vertex shader (je précise que dans le cas général, j’ai toujours null pour vertexshader et ca fonctionne impec. J’ai trouvé ça dans le SDK de directX, rayon Samples\C++\Direct3D\PostProcess ).
En fait, j’imagine que dans la mesure ou VPOS est censé indiqué les coordonnées du pixel que l’on texture, à la projection, ces coordonnées ne sont calculées que dans le cas d’un pipeline complet. Dans le mien, je me contente de passer un pixelshader sur une texture, qui est directement bindée sur mon buffer de sortie de rendu.
J’ai maintenant pas trouvé de vertexshader qui sont transparents pour mes coordonnées dans ce cas …
ca veux dire qu’il va zaper le shader, et utiliser directement le setup engine et/ou le rasterizer, bien pratique si tu fais du rendu super simple (genre shadow map, ou tu as que du plein ou du vide, jmecomprennnds la B) ).
Le pass through sur le pixel shader et souvent supporte, mais sur le vertex shader pas forcement, car toute les GPU n’ont pas de pipelines fixes (a l’ancienne, sans vertex/pixel shader)… donc voila!
j’avais un peu pigé le principe mais j’ai extremement du mal à le mettre en place. Je zapperai vraiment bien le vs dans mon contexte.
J’ai vu passer un POSITIONT mais je trouve vraiment pas bcp de doc là dessus …