Entrée du moteur de rendu à compétent 1_Importation de l'implémentation du modèle et résolution du problème d'utilisation de fbxsdk

Condition préalable,

Avant d'apprendre cet article, vous devez parcourir complètement le projet

​​​​​​​​Entrée du moteur de rendu

 ​​​​​​​

modèle d'importation

Parce que le rendu doit utiliser des normales, des tangentes, le cube d'origine, les quads ne suffisent pas

Par conséquent, notre moteur doit encore importer le modèle, car il est profondément influencé par l'unité, et il existe également un moteur "grand dieu". Après cette exigence d'itération, la première réaction est d'utiliser fbx pour charger le modèle, et yaml pour sérialiser

Bien sûr, ce n'est pas le but du rendu

1. Installez fbx sdk (1.6g est assez gros)

//官方下载 exe

2. Rencontré le problème de conversion de Fbxstring en chaîne

(Le code de Dieu peut être compilé directement sans conversion, et le code de Dieu sera affiché en bas)

std::string nodeName=MyString::FbxStr2StdStr(pNode->GetName());

3. Symbole externe non résolu

(sdk2017.lib utilisé au début, il y aura ce problème, pas de solution)

Plus tard, lorsque vous passerez à sdk2010, il apparaîtra et une invite plus inexplicable apparaîtra.

xxxxxxxx symbole externe non résolu __cdcel 2019

résoudre

Il semble que la nouvelle version ait modifié certaines méthodes d'appel et
ajouté quelques bibliothèques statiques.

(Clic droit, Propriétés du projet, Linker -> Input
insérez la description de l'image ici

libfbxsdk-mt.lib
wininet.lib
libxml2-mt.lib
zlib-mt.lib

Ce qui précède utilise -mt.lib, donc il demandera LNK2038,

Temps de compilation VC : la différence entre MT, MTd, MD, MDd - Blog de JoliceYU - Blog CSDN

Il existe une solution : faites un clic droit sur le projet - "Propriétés - "c/c++ - "Génération de code - "Runtime Library

Après avoir réfléchi à ce qui suit, il n'y a aucune raison de modifier la configuration de l'ensemble du projet pour une bibliothèque.

Parce que j'utilise cette bibliothèque, alors écrivez directement -md.lib , vous pouvez

 

Pour la différence entre mt et md, veuillez vous référer à :

Temps de compilation VC : la différence entre MT, MTd, MD, MDd - Blog de JoliceYU - Blog CSDN

3.1 Structures C++ silencieuses

//有毒不能用
//#include <DirectXMath.h>
//using namespace DirectX;
//用的很旧的 d3d,而用xnamth之前必须include <d3d11.h>
#include<d3d11.h>
#include<xnamath.h>

3.2 Construction de l'environnement FBX SDK

[Apprendre à remplir la fosse] Construction et test de l'environnement FBX-SDK - Blog de la vie ennuyeuse de Wu Yidan - Blog CSDN - téléchargement fbx sdk

4. Lire le code d'implémentation de fbx

cheval mort pour cheval vivant

Après avoir configuré le SDK fbx conformément à ce qui précède, il vous indiquera que le .dll est introuvable

Mettez la dll du répertoire d'installation de fbx sdk et placez-la dans le même répertoire de niveau de .sln (j'ai essayé de la mettre directement dans le répertoire /debug, mais ça ne marche pas)

Pour le mettre dans le répertoire racine, je ne sais pas pourquoi le répertoire lib est évidemment ancien, c'est-à-dire qu'il est introuvable

faut copier

Lisez le code fbx : (maintenant, il y a beaucoup d'informations sur Internet)

https://www.twblogs.net/a/5ee5d022b4c39c99158fb411

 

Lecture complémentaire :

Séparation de modèles et analyse du SDK FBX (Python/C++) Develop Paper

Aide sur les documents officiels Fbx 

Système de coordonnées 3dmax et système de coordonnées fbx exporté - wantnon - Blog Park

Sortie printf des paramètres du projet Visual Studio 2017 VC vers le débogage de la fenêtre de la console - Programmeur recherché

Je suppose que tu aimes

Origine blog.csdn.net/avi9111/article/details/123656476
conseillé
Classement