|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 24 ![]() |
Bonjour,
Je cherche à implémenter un jeu d'échec en 3D avec DirectX 9. Mon problème est le suivant, j'ai un screenshot plutôt sympathique d'un rendu graphique que j'aimerai obtenir pour mon jeu. Cependant ce rendu graphique semble utiliser pas mal de techniques et du coup je suis un peu perdu En d'autres termes j'aimerai obtenir ça: ![]() Mais pour le moment je n'ai que ça: Je n'ai pas de textures et les pièces ne possèdent pas de matière (material). Mes questions sont les suivantes: - Dois je rajouter les matières via un logiciel ou utiliser un shader pour les générer ? - Quels sont les techniques à utiliser ? HDR ? DIM ? Ambient Occlusion ? Shadow map ? Reflection ? Depth map ? - Quel est l'ordre de difficulté d'implémentation pour les techniques ? - Par exemple est ce que je dois commencer par créer un shader pour le damier ? (transparence + réflexion) Voilà en gros il me faudrait surtout des indices pour le nom des techniques. Après je me débrouillerai pour trouver des exemples et implémenter les shaders. Merci d'avance pour l'aide |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Alexandre LaurentÉtudiant Inscription : mai 2008 Messages : 6 547 ![]() |
Bonjour,
Pour l'image de base, nous avons de la chance, je n'ai pas vu d'ombre, ni de normal mapping (ou autre). Juste des lumières / matérials. Même si je trouve que l'emplacement des lumières est étrange, et qu'il me manque le specular (reflets de lampes) à plusieurs endroits. Donc, ce que vous devez faire maintenant: - Mettre le jeu sous forme solide (et non en fil de fer) - Faire une gestion simple des lampe (Ambient + diffuse + specular) - Rajouter des matériaux si besoin Et après, je pense que l'on aura déjà un résultat assez proche de celui de l'image de base. On pourra rajouter les ombres ![]() Sur tout ce que j'ai dit, je ne vois pas de difficultés (en même temps, je commence à avoir l'habitude de faire ce genre de trucs )Note: Il n'y a pas de transparence ni de reflection dans l'image de base. Mais si vous deviez en faire, la solution shader est pas mal (aussi pour les lampes) car cela permet une grand liberté de techniques, et aussi que c'est un truc de plus en plus utliser :p
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
|
00
|
|
|
#3 | ||||||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 24 ![]() |
Merci LittleWhite pour cette réponse
Il me semblait pourtant que les pièces blanches se reflétaient légèrement sur le damier mais bon je cherche la petite bête là Contrairement à ce que je pensais les pièces semblent avoir des matériaux. J'ai voulu réutiliser un vieux shader OpenGL d'un livre pour éclairer les pièces mais je n'obtiens que des pièces blanches quand je l'applique. Étant débutant avec les shaders je pense que ma conversion GLSL vers HLSL n'a pas fonctionné .Le code OpenGL: Vertex: Code :
Code :
Code :
![]() Merci encore pour l'aide. |
||||||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Alexandre LaurentÉtudiant Inscription : mai 2008 Messages : 6 547 ![]() |
Je ne vois pas de différence. Peut être un problème de transfert de valeurs entre le programme et le shader.
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() ![]() Inscription : février 2006 Messages : 1 391 ![]() |
|
|
|
00
|
|
|
#6 | |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 24 ![]() |
Citation:
L'état D3DRS_LIGHTING est bien à TRUE, si je n'active pas le shader, je n'ai pas de rendu. Et si par exemple je change le contenu final du vertex shader avec une couleur rouge alors les pièces sont bien colorées en rouge. |
|
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Alexandre LaurentÉtudiant Inscription : mai 2008 Messages : 6 547 ![]() |
Comme je l'ai dit, il se peut que se soit les donnees envoyes au shaders qui sont fausses.
On peut verifier juste en affichant ces donnees avec l'attribut des couleurs. Sinon ... je ne vois pas vraiment le probleme.
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
|
00
|
|
|
#8 | |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 24 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Inscription : février 2006 Messages : 1 391 ![]() |
si tu utilises le pipeline programmable (shader) beaucoup de render states sont inopérants comme justement D3DRS_LIGHTING.
|
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 24 ![]() |
D'accord, je pensais qu'il fallait quand même désactiver l'état D3DRS_LIGHTING (le mettre à TRUE pour laisser l'utilisateur gérer la luminosité) pour être sûr qu'il n’y est pas de conflit entre les deux pipelines.
|
|
|
00
|
|
|
#11 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 24 ![]() |
J'ai regardé rapidement les valeurs envoyés au shader pour les couleurs. Elles sont identiques dans les deux programmes (OGL et DX).Tant qu'à y aller carrément j'ai codé les valeurs en dur dans le shader pour tester son comportement. La aussi je l'ait fait pour les deux programmes. J'ai aussi modifié un peu le shader, il y avait des variables en trop (specular et emissive ne sont pas utilisés). Toujours un rendu correct pour le GLSL mais tout blanc pour HLSL.
Le code des shaders modifiés: GLSL: Code :
Code :
Merci encore pour l'aide et vos réponses. |
||||
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Alexandre LaurentÉtudiant Inscription : mai 2008 Messages : 6 547 ![]() |
J'etais exactement entrain de penser aux normals.
Encore une fois, pour debugguer du shader, la methode la plus simple est d'afficher les normals comme si c'etait des couleurs. Notez aussi, que les normals doivent etre passe au shader comme des vertex / couleurs ... et que aussi, votre objet 3D doit en avoir.
__________________
Vous souhaitez participer à la section Jeux ? Contactez-moi ![]() La rubrique a aussi un blog ! Ma page sur DVP Mon Portfolio Qui connaît l'erreur, connaît la solution. |
|
|
00
|
|
|
#13 |
|
Membre habitué
![]() Inscription : novembre 2010 Messages : 65 ![]() |
Ta transcription est un peu tordu. De plus je ne suis pas sur que ton pixel shader soit complet pour ce que tu souhaites faire.
Effectivement, il te faut aussi bien vérifier que tes modèles ont été bien 'normalisés', sinon point de restitution de light convenable. Et (si je puis me permettre) plutôt que de chercher à transcrire un GLSL vers du HLSL, essais plutôt de partir sur ton propre code, et en comprenant parfaitement ce que tu fais. Cela te permettra par la suite de beaucoup mieux le faire évoluer et d'arriver en final à l'effet recherché. De très bon tuto sont la pour t'aider, comme par exemple: xnameetingpoint.web.officelive.com/FrenchShader1 très bonne serie, en français, Basic HLSL Lighting Techniques en anglais. |
|
|
00
|
|
|
#14 | |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 24 ![]() |
Citation:
. Va pour les tutos alors. Je reviendrais demander de l'aide si je n'arrive toujours pas à obtenir ce que je veux.Merci pour les liens |
|
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() Inscription : février 2006 Messages : 1 391 ![]() |
je ne sais pas si tu utilises les shaders en brut ou si tu passes par un fichier effet, mais dans le cas des shaders bruts, il ne faut pas oublier de passer les matrices transposées à la carte graphique.
|
|
|
00
|
|
|
#16 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2009 Messages : 24 ![]() |
J'utilisai les shaders en brut mais je vais regarder du côté de la classe ID3DXEffect.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com