2013-03-15 3 views
2

J'essaie d'apprendre quelques DirectX11 et j'ai trouvé un bon tutoriel que je suis; Cependant, pour une raison quelconque, le programme se bloque (la fenêtre apparaît mais une boîte de message "ne répond pas" apparaît), même si la compilation a réussi. Il y avait quelque chose à propos de la création de shader-fichiers que l'auteur a spécifié sur la façon de faire, et je voulais m'assurer que je ne faisais pas d'erreurs là-bas et que mon programme se bloque. Donc, mes questions sont:Création de fichiers shader

  1. Comment créer un fichier shader? Dans le tutoriel, nous utilisons l'extension .fx, mais lorsque vous ajoutez un fichier dans vs vous ne pouvez choisir que parmi .h et .cpp. Avez-vous seulement à sélectionner .cpp et ensuite ajouter .fx à la fin du nom de fichier?

  2. Dans quel répertoire le fichier est-il censé être? (Mes fichiers sont actuellement dans les fichiers source)

Répondre

0
  1. Oui cela fonctionnera. Une autre façon de le faire est juste de créer un fichier .txt puis changer l'extension en .fx (Pour afficher l'extension du fichier, il suffit d'ouvrir un dossier, cliquez sur le bouton organiser dans le menu puis choisissez "dossier et options de recherche". case "Masquer les extensions pour connaître les types de fichiers" sous l'onglet). Après avoir modifié l'extension, vous pouvez ouvrir le document dans le bloc-notes et y écrire votre code

  2. Accédez à votre dossier de projet (dans le système de fichiers Windows) et créez une carte appelée Données. Ajoutez-y le fichier .fx. Puis allez dans votre explorateur de solution et cliquez droit sur le projet et choisissez les propriétés. Allez à Construire des événements -> Événements de pré-construction. Ajoutez la ligne "xcopy/y/d" $ (ProjectDir) Données "" $ (OutDir) "dans la boîte de dialogue" Ligne de commande "Maintenant, lorsque vous construisez votre projet, les fichiers seront copiés à la bonne place et vous pourrez utilisez votre fichier .fx.

0

le .fx est associé avec un fichier d'effet. cela signifie que vous avez une combinaison de plusieurs shaders dans le même fichier. Pouvez-vous envoyer un code de votre boucle de rendu ... aussi , appelez-vous la méthode Present? Par exemple,

m_pSwapChain->Present(0, 0);