• 大小: 37.77MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-24
  • 语言: 其他
  • 标签: OPENGL  3DS文件  

资源简介

用3DSMAX画了一个简单的茶壶,以3DS格式导出,最终显示成功。 程序参考NEHE的,还有前人修改后的程序,将程序尽可能的简化了。

资源截图

代码片段和文件信息


#include “CLoad3DS.h“

#pragma warning (disable: 4996) 


// 下面的函数求两点决定的矢量
NBVector3 Vector(NBVector3 vPoint1 NBVector3 vPoint2)
{
NBVector3 vVector;              

vVector.x = vPoint1.x - vPoint2.x;      
vVector.y = vPoint1.y - vPoint2.y;      
vVector.z = vPoint1.z - vPoint2.z;      

return vVector;                
}

// 下面的函数两个矢量相加
NBVector3 AddVector(NBVector3 vVector1 NBVector3 vVector2)
{
NBVector3 vResult;              

vResult.x = vVector2.x + vVector1.x;    
vResult.y = vVector2.y + vVector1.y;    
vResult.z = vVector2.z + vVector1.z;    

return vResult;                
}

// 下面的函数处理矢量的缩放
NBVector3 DivideVectorByScaler(NBVector3 vVector1 float Scaler)
{
NBVector3 vResult;              

vResult.x = vVector1.x / Scaler;      
vResult.y = vVector1.y / Scaler;      
vResult.z = vVector1.z / Scaler;      

return vResult;                
}

// 下面的函数返回两个矢量的叉积
NBVector3 Cross(NBVector3 vVector1 NBVector3 vVector2)
{
NBVector3 vCross;                

vCross.x = ((vVector1.y * vVector2.z) - (vVector1.z * vVector2.y));

vCross.y = ((vVector1.z * vVector2.x) - (vVector1.x * vVector2.z));

vCross.z = ((vVector1.x * vVector2.y) - (vVector1.y * vVector2.x));

return vCross;                
}

// 下面的函数规范化矢量
NBVector3 Normalize(NBVector3 vNormal)
{
double Magnitude;              

Magnitude = Mag(vNormal);          // 获得矢量的长度

vNormal.x /= (float)Magnitude;        
vNormal.y /= (float)Magnitude;        
vNormal.z /= (float)Magnitude;        

return vNormal;                
}

// 读入一个纹理
int CLoad3DS::BuildTexture(char *szPathName GLuint &texid)
{
HDC      hdcTemp;                        // The DC To Hold Our Bitmap
HBITMAP    hbmpTemp;                        // Holds The Bitmap Temporarily
IPicture  *pPicture;                        // IPicture Interface
OLECHAR    wszPath[MAX_PATH+1];                  // Full Path To Picture (WCHAR)
char    szPath[MAX_PATH+1];                    // Full Path To Picture
long    lWidth;                          // Width In Logical Units
long    lHeight;                        // Height In Logical Units
long    lWidthPixels;                      // Width In Pixels
long    lHeightPixels;                      // Height In Pixels
GLint    glMaxTexDim ;                      // Holds Maximum Texture Size

if (strstr(szPathName “http://“))                  // If PathName Contains http:// Then...
{
strcpy(szPath szPathName);                    // Append The PathName To szPath
}
else                                // Otherwise... We Are Loading From A File
{
GetCurrentDirectory(MAX_PATH szPath);              // Get Our Working Directory
strcat(szPath PICPATH);                      // Append “\“ After The Working Directory
strcat(szPath szPathName);                    // Append The PathName
}


MultiByteToWideChar(CP_ACP 0 szPath -1 wszPath MAX_PATH); 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-02-01 16:59  Lesson06\
     目录           0  2015-01-31 21:17  Lesson06\Backup\
     文件       25078  2014-12-11 22:05  Lesson06\CLoad3DS.cpp
     文件        8064  2014-12-11 22:06  Lesson06\CLoad3DS.h
     目录           0  2015-02-01 16:47  Lesson06\Data\
     目录           0  2015-02-01 16:47  Lesson06\Data\3DS\
     文件      398031  2002-04-29 13:04  Lesson06\Data\3DS\AUDIAVUS.3DS
     文件       59320  2011-04-01 16:35  Lesson06\Data\3DS\balloon.3DS
     文件       93307  2011-04-01 16:35  Lesson06\Data\3DS\boy.3DS
     文件       93334  2011-04-01 16:35  Lesson06\Data\3DS\boy_back.3DS
     文件      200553  2011-04-01 16:35  Lesson06\Data\3DS\building.3DS
     文件      231125  2011-04-01 16:35  Lesson06\Data\3DS\building_nb.3DS
     文件      389973  2002-06-24 14:31  Lesson06\Data\3DS\COLI_L.3DS
     文件      196223  2011-04-01 16:35  Lesson06\Data\3DS\dinosaur.3DS
     文件      210575  2011-04-01 16:35  Lesson06\Data\3DS\F111_L.3DS
     文件       91812  2011-04-01 16:35  Lesson06\Data\3DS\farTree.3DS
     文件      152229  2011-04-01 16:35  Lesson06\Data\3DS\GUTEMB_L.3DS
     文件      156778  2011-04-01 16:35  Lesson06\Data\3DS\GUTEMB_L_back.3DS
     文件       10315  2011-04-01 16:35  Lesson06\Data\3DS\house.3DS
     文件       19860  2011-04-01 16:35  Lesson06\Data\3DS\house_back.3ds
     文件      228556  2006-03-20 15:32  Lesson06\Data\3DS\M1_Abrams.3DS
     文件       14796  2011-04-01 16:35  Lesson06\Data\3DS\middleTree.3DS
     文件       29123  2007-11-13 11:05  Lesson06\Data\3DS\model.3DS
     文件       27781  2014-12-26 17:42  Lesson06\Data\3DS\moxing.3DS
     文件       40431  2011-04-01 16:35  Lesson06\Data\3DS\muoshou.3DS
     文件       25029  2011-04-01 16:35  Lesson06\Data\3DS\rock.3DS
     文件      525926  2011-04-01 16:35  Lesson06\Data\3DS\STUT_C_L.3DS
     文件       34622  2015-01-31 22:15  Lesson06\Data\3DS\teapot.3DS
     文件        5120  2011-04-01 16:35  Lesson06\Data\3DS\Thumbs.db
     文件      142679  2011-04-01 16:35  Lesson06\Data\3DS\townHouse.3DS
     文件      245607  2011-04-01 16:35  Lesson06\Data\3DS\tree_leaf.3DS
............此处省略164个文件信息

评论

共有 条评论