Accueil > Forum > > > > HLSL Shader fx et vb net
HLSL Shader fx et vb net
samedi 17 juin 2006 à 11:15:42 |
HLSL Shader fx et vb net

nomadsoulnomad
|
 Bonjour, je recherche a effectuer des shaders dans mon jeu avec vb net express 2005 et un logiciel qui crée les shaders FX ! Le probleme est le suivant : pour des shader simple sa marche, mais dès que le shader fx contient des textures et une light , la compilation s'arrete a mesh.drawsubset(0). - je voudrait savoir si il faut construire soit meme la light en VB ou si le fichier fx s'en charge lui meme ? -Pareil pour les textures ,faut-t'il les charger soit meme et les appliquer sur l'object ? Au moment de la creation du Fx dans le logiciel, il marche et peut etre appliquer sur un mesh pour en apprecier le resultat, le probleme vient donc de moi et non pas du fichier fx ! Merci de votre futur aide ! 
|
|
mardi 20 juin 2006 à 14:33:37 |
Re : HLSL Shader fx et vb net

vr3h
|
Alors pour les lights, je ne me suis pas encore penché dessus, tu peux de toute facon tout coder en VB, mais je crois qu'il existe deja quelque chose qui te permet de récupérer les lights definies auprès de ton Device. Pour ce qui est de la texture, il faut la passer au device via la methode SetTexture, et ensuite dans ton code HLSL utiliser un sampler auquel tu accèdes via les intrinsèques tex2D par exemple...
Pour ma part j'aimerai savoir comment tu fais pour le depth buffer ? j'arrive a l'utiliser mais ça reste de la "bidouille" et j'aimerai utiliser une méthode "propre" pour le remplir.
|
|
mardi 20 juin 2006 à 14:51:06 |
Re : HLSL Shader fx et vb net

nomadsoulnomad
|
En faite moi je programme via un moteur 3d gratuit pour le developpement et payant pour le diffuser ! Ce programme n'accepte que pour l'instant directx 8! Or moi j'essay de travailler en directx9 avec les shader 3 , convertir le resultat en texture pour qu'il soit exploitable par le moteur graphique ...Donc en faite je sui un debutant en se qui concerne la programmation pure en direct x et en shader 3 !!!!! Quesque tu appelle "remplir le depth buffer" ?
Au faite merci pour ta reponse mais autre question mon shader peut utiliser plusieur texture a mettre sur un object, le probleme c'est que si j'applique la texture via le device il va aplliquer la derniere texture au device sans y mettre ou traiter les precedente !!!!! Compliquer tt sa....

|
|
mardi 20 juin 2006 à 15:46:44 |
Re : HLSL Shader fx et vb net

vr3h
|
Pour le multitexturing, admettons que tu aies les lignes de code suivante au début :
sampler2D Texture1;
sampler2D Tex2;
sampler2D GlowTexture;
Ces 3 lignes de code HLSL définissent 3 sampler 2D auxquels tu accèdes par l'intrinsèque "tex2D". Ils sont en quelque sorte des références vers les textures passées au Device.
Pour définir le sampler "Texture1", dans ton code VB, tu fais : Device.SetTexture(0, Texture1).
Pour définir le sampler "GlowTexture", dans ton code VB, tu fais : Device.SetTexture(2, Texture3).
Et pour définir le sampler "Tex2", dans ton code VB, tu fais : Device.SetTexture(1, Texture2).
Comme tu peux le voir c'est très simple.
Pour ce qui est de mon problème de depth buffer, le problème que j'ai c'est que si je ne défini pas la sémantique DEPTH dans le PixelShader, c'est comme si il ignorait le depth buffer. Aussi j'aimerais savoir comment faire pour qu'avec un shader je puisse utiliser convenablement le depth buffer.
|
|
mercredi 21 juin 2006 à 15:03:13 |
Re : HLSL Shader fx et vb net

nomadsoulnomad
|
bha heu dans ton fichier fx tu doit avoir une ligne qui te permet d'acceurir le "world view projection" ! Tu fait toi meme le fichier fx ou c'est un logiciel qui te le fait ? Dans mon fichier fx jai cette ligne : float4x4 wvp : WorldViewProjection
que j'aquiere ensuite dans mon VB ! puis apres dans mon loop de vb jai cette ligne : meshshader.SetValue(Tech2, Matrix.LookAtLH( New Vector3(0.0F, 1.0F, -4.0F), New Vector3(0.0F, 0.0F, 0.0F), New Vector3(0.0F, 1.0F, 0.0F)) * Matrix.PerspectiveFovLH(1.0F, 10 / 10, 1.0F, 500.0F))
tech2 est defini dans mon vb comme : Public Tech2 As Microsoft.DirectX.Direct3D.EffectHandle = Microsoft.DirectX.Direct3D.EffectHandle.FromString("wvp")
ou wvp c'est le world view projection .... cest sa ton pb ? ou jai pas compris se que cétait le depth buffer ? 
|
|
mercredi 21 juin 2006 à 15:18:28 |
Re : HLSL Shader fx et vb net

nomadsoulnomad
|
rectification: Dans mon fichier Fx voici mes lignes : texture cubeMap : Environment < string ResourceName = "default_reflection.dds"; string ResourceType = "Cube"; >;
texture fresnelTex : Environment < string ResourceType = "2D"; string function = "generateFresnelTex"; float2 Dimensions = { 256.0f, 1.0f}; >;
samplerCUBE environmentMapSampler = sampler_state { Texture = <cubeMap>; MinFilter = Linear; MagFilter = Linear; MipFilter = Linear; };
sampler2D fresnelSampler = sampler_state { Texture = <fresnelTex>; MinFilter = Linear; MagFilter = Linear; MipFilter = None; };
Dans mon vb jai :
Public
fresnel
As
EffectHandle = EffectHandle.FromString(
"fresnelTex"
) puis
Textures(3) = meshshader.GetValueTexture(fresnel)
Dans mon loop jai :
device.SetTexture(1, Textures(3))
Pour l'autre texture pareil (comme tu a dit, je vait pas mettre tt mon code...) Le probleme c'est que mon teapot est rendu en noire ! Jai ajjouter une light et meme un material, tj en noire , pourqoi ?
|
|
jeudi 22 juin 2006 à 15:06:39 |
Re : HLSL Shader fx et vb net

vr3h
|
Le depth buffer est une surface, comme le back buffer, sauf que les données que contient le depth buffer ne sont pas affichées, elles sont utilisées pour savoir si le pixel qui est en train d'etre dessiné est plus proche ou plus loin que celui qui a déjà été dessiné. Ca permet d'éviter qu'un pixel caché par une autre face soit dessiné. Si tu veux je peux t'envoyer un exemple de "glow" mais qui "bug" un peu a cause du depth buffer justement...
Sinon, pour tes textures, leur déclaration a l'air bonne, c'est quoi le code de ton PixelShader ?
|
|
jeudi 22 juin 2006 à 15:56:43 |
Re : HLSL Shader fx et vb net

nomadsoulnomad
|
voici les lignes de mon pixel shader :
/********* pixel shader ********/
// modified refraction function that returns boolean for total internal reflection float3 refract2( float3 I, float3 N, float eta, out bool fail ) { float IdotN = dot(I, N); float k = 1 - eta*eta*(1 - IdotN*IdotN); // return k < 0 ? (0,0,0) : eta*I - (eta*IdotN + sqrt(k))*N; fail = k < 0; return eta*I - (eta*IdotN + sqrt(k))*N; }
// approximate Fresnel function float fresnel(float NdotV, float bias, float power) { return bias + (1.0-bias)*pow(1.0 - max(NdotV, 0), power); }
// function to generate a texture encoding the Fresnel function float4 generateFresnelTex(float NdotV : POSITION) : COLOR { return fresnel(NdotV, 0.2, 4.0); }
float4 mainPS(vertexOutput IN, uniform samplerCUBE EnvironmentMap, uniform half reflectStrength, uniform half refractStrength, uniform half3 etas ) : COLOR { half3 N = normalize(IN.WorldNormal); float3 V = normalize(IN.WorldView); // reflection half3 R = reflect(-V, N); half4 reflColor = texCUBE(EnvironmentMap, R);
// half fresnel = fresnel(dot(N, V), 0.2, 4.0); half fresnel = tex2D(fresnelSampler, dot(N, V));
// wavelength colors const half4 colors[3] = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 1, 0 }, }; // transmission half4 transColor = 0; bool fail = false; for(int i=0; i<3; i++) { half3 T = refract2(-V, N, etas[i], fail); transColor += texCUBE(EnvironmentMap, T) * colors[i]; }
return lerp(transColor*refractStrength, reflColor*reflectStrength, fresnel); }
/*************/
Quand j'aplique le shader sur une teapot generer par le programe qui crée le shader sa marche , mais pas dans mon programme! Pour ton probleme je voit se que tu veut dire le pb c'est que je sui pas assez avancer pour te repondre malheuresement !
|
|
jeudi 22 juin 2006 à 16:11:01 |
Re : HLSL Shader fx et vb net

nomadsoulnomad
|
modification , pour ton probleme essay avec ces lignes : Device.RenderState.ZBufferEnable = TrueDevice.RenderState.ZBufferWriteEnable = TrueDevice.RenderState.ZBufferFunction = Microsoft.DirectX.Direct3D.Compare.LessEqual
|
|
vendredi 23 juin 2006 à 10:09:34 |
Re : HLSL Shader fx et vb net

vr3h
|
Tu utilises un logiciel pour programmer ton shader ? ou quelque chose comme le bloc-note ? Il faudrait s'assurer sinon que lerp retourne bien un vecteur 4D, sinon essaye de le faire explicitement ?
|
|
Cette discussion est classée dans : net, vb, fx, shader, hlsl
Répondre à ce message
Sujets en rapport avec ce message
VB .Net 2005, .net 3 et WPF [ par pjouy ]
BonjourJe voudrais utiliser des effets graphiques de Vista (comme le transparent flouté) dans mon application. J'ai eu beau chercher, je n'ai trouvé a
Vb.net et 2500 [ par whombat ]
Bonjour à tous,Je voulais acheter un livre sur VB.Net et le libraire (qui est pourtant un gars très compétant) me propose un ouvrage intitulé :"VB 250
delete from en vb.net [ par bcmfr ]
Bonjour à tousj'ai besoin de votre aide pour savoir comment supprimer des données de ma base access grace a delete mais sans utiliser SQL server. Or s
Vb 6 vers Vb.net [ par math083 ]
Bonjour tout le mondeJe programme depuis 1997 sous VB, j'ai connu tous les Vb de la version 4 à la version 6. J'ai depuis peu la version 2005 et j'ai
[VB.Net]Synchronisation contacts outlook express [ par moimael ]
Voila pour les besoins de mon appli, je dois communiquer avec outlook express pour récuperer les contacts présents dans le carnet d'adresse pour ensui
Impression sous VB Net 2005 [ par Sismic22 ]
Salut à tous! Je travail actuellement sur l'impression. Je rempli un formulaire sous VB, puis un boutton imprimer m'envoie sur la page aperçu avant
modification des droits sur un dossier VB.NET [ par LeakimD ]
Salut Je cherche a créer des dossiers sur le disque a partir d'un applicationjusque la pas de problèmemais je veux gerer les droits sur ceux dossiers
objet COM vb.net [ par billy21121 ]
Bonjour a tous,j'ai un petit problème sur des formulaires vb.net.j'ai crée une dll en vb.net qui contient une class et une form. ma class appel la for
Police standard pour Projet VB.NET [ par Sipat ]
Bonsoir,J'ai essayé mon projet sur un autre ordi ,je me suis aperçu que la police des Labels avait changés parce que la police que j'ai utilisée Arena
Dessin dans VB.NET [ par greg60200 ]
Bonjour,je cherche a réaliser des dessins en 2D (triangle, rectangles, polygones) que je pourrai ensuite utiliser comme objet dont les propriété me pe
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|