资源简介
Opengl 导入3Dmax制作的.3ds模型 并显示出来 这是博文对应的工程,用于显示3D模型。比较简单的调用方法, 把复杂的内部结构全部弄到一起屏蔽掉,想要分析的 可以仔细看看那个文件。
代码片段和文件信息
#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);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 25078 2014-12-11 22:05 Lesson06\CLoad3DS.cpp
文件 8064 2014-12-11 22:06 Lesson06\CLoad3DS.h
文件 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
文件 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
..A..H. 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
文件 454069 2002-04-22 16:48 Lesson06\Data\3DS\TWOSTORY.3DS
文件 230621 2002-04-30 15:47 Lesson06\Data\3DS\T_HELI_L.3DS
文件 757524 2011-04-01 16:35 Lesson06\Data\3DS\warehouse.3DS
文件 196664 2000-03-06 02:10 Lesson06\Data\NeHe.bmp
文件 11896 2011-04-01 16:34 Lesson06\Data\pic\41.JPG
文件 50713 2011-04-01 16:34 Lesson06\Data\pic\5DG‘S Heightmap.jpg
............此处省略140个文件信息
- 上一篇:Windows核心编程PDF完整版
- 下一篇:移动开发 H5开发angular4教程
相关资源
- OpenGL游戏程序设计.pdf
- 一个opengl+粒子系统模拟雪效的简单程
- OpenGL ES 2.0 编程指南中英文+源码
- 《LearnOpengl CN》中文最新版-2018年11月
- OpenGL三维场景绘制3D模型读取
- OpenGL三维图形系统开发与实用技术.
- opengl绘制的简单机器人 可以实现走路
- opengl三维迷宫
- opengl+粒子系统的降雪模拟增强版
- OpenGL --A Primer[2nd Edition] OpenGL程序设计
- 基于OpenGL的 虚拟漫游
- MyGUI_3.2.0
- opengl地球仪
- OpenGL编程指南原书第9版高清完整版
- OpenGL着色语言 中文高清版
- OpenGL编程指南原书第9版内
- openGL绘制虚拟教室
- 基于OpenGL的3D赛车游戏的研究与实现源
- OpenGL绘制一个多边形 添加颜色
- OpenGL三维图形系统开发与实用技术 基
- OpenGL鼠标交互3D模型
- 图形学的几道基础练习计算机图形学
- 交互式计算机:图形学基于OpenGL着色
- 基于opencv与opengl实现增强现实
- OpenGl三维镂垫绘制附使用说明
- OpenGL三维图形系统开发与实用技术基
- opengl导入FBX模型代码
- OPENGL载入3DS
- opengl超级宝典第七版
- 高级着色语言GLSL渲染obj文件
评论
共有 条评论