Я читаю проект с открытым исходным кодом и обнаружил, что есть функция, которая считывает трехмерные данные (скажем, символ) из файла obj и рисует его.
Исходный код:
List<Vertex3f> verts=new List<Vertex3f>();
List<Vertex3f> norms=new List<Vertex3f>();
Groups=new List<ToothGroup>();
//ArrayList ALf=new ArrayList();//faces always part of a group
List<Face> faces=new List<Face>();
MemoryStream stream=new MemoryStream(buffer);
using(StreamReader sr = new StreamReader(stream)){
String line;
Vertex3f vertex;
string[] items;
string[] subitems;
Face face;
ToothGroup group=null;
while((line = sr.ReadLine()) != null) {
if(line.StartsWith("#")//comment
|| line.StartsWith("mtllib")//material library. We build our own.
|| line.StartsWith("usemtl")//use material
|| line.StartsWith("o")) {//object. There's only one object
continue;
}
if(line.StartsWith("v ")) {//vertex
items=line.Split(new char[] { ' ' });
vertex=new Vertex3f();//float[3];
if(flipHorizontally) {
vertex.X=-Convert.ToSingle(items[1],CultureInfo.InvariantCulture);
}
else {
vertex.X=Convert.ToSingle(items[1],CultureInfo.InvariantCulture);
}
vertex.Y=Convert.ToSingle(items[2],CultureInfo.InvariantCulture);
vertex.Z=Convert.ToSingle(items[3],CultureInfo.InvariantCulture);
verts.Add(vertex);
continue;
}
А для чего нужно читать данные вручную в DirectX? Насколько я знаю, в программировании XDA нам просто нужно вызвать функцию для загрузки ресурса.
Это потому, что в DirectX нет функции чтения ресурса?
Если да, то как подготовить 3D ресурс? в XDA нам просто нужно использовать другое программное обеспечение, чтобы нарисовать трехмерную картинку и затем экспортировать. но что мне делать в DirectX?