游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6049|回复: 6

唐大哥请教您一个问题,关于md2文件读取的。

[复制链接]

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2005-6-25 19:55:00 | 显示全部楼层 |阅读模式
关于md2文件的渲染,我看到有一个引擎是这样画读入的md2三角形顶点数据的。



        while(val != 0)
        {
                int count;

                if(val > 0)
                {
                        glBegin(GL_TRIANGLE_STRIP);
                        count = val;
                }
                else
                {
                        glBegin(GL_TRIANGLE_FAN);
                        count = -val;
                }

                while(count--)
                {
***********************************************************
                        float s = *(float*)&glCommands[i++];
                        float t = *(float*)&glCommands[i++];
                        int index = glCommands[i++];

                        glTexCoord2f(s , t);
                       
***********************************************************
                     x1 = m_pFrames[currFrame].m_pVertices[index].m_fVert[0];
                     y1 = m_pFrames[currFrame].m_pVertices[index].m_fVert[1];
                     z1 = m_pFrames[currFrame].m_pVertices[index].m_fVert[2];

        x2 = m_pFrames[nextFrame].m_pVertices[index].m_fVert[0];
        y2 = m_pFrames[nextFrame].m_pVertices[index].m_fVert[1];
        z2 = m_pFrames[nextFrame].m_pVertices[index].m_fVert[2];
       
      glVertex3f((x1 + fInterpolation * (x2 - x1)) , (y1 + fInterpolation * (y2 - y1)) , (z1 + fInterpolation * (z2 - z1)));

                }
                glEnd();

                val = glCommands[i++];
                 }


我前几天买了你出的《学OpenGL编3D游戏》,可是我看了半天,怎么这个读取md2显示的代码和您的相差这么多啊?而且结果两个都对,我已经验证了。尤其是两行星号之间的代码我更不明白,为什么这个glCommand这么厉害?好像它还包含了纹理坐标,既然这里面包含着纹理坐标,那md2头文件里自带的纹理坐标又还有什么用。我说的这个例子真的是根本就没用纹理坐标这个变量,而是直接从md2文件的头文件里接收的glCommand参数中包含的纹理坐标。

那么这个glCommand参数在 md2文件中到底是干什么的?怎么这么神通广大?


我在别的论坛问了,但可能都没有知道的,所以来请教你。

42

主题

334

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
发表于 2005-6-25 22:26:00 | 显示全部楼层

Re:唐大哥请教您一个问题,关于md2文件读取的。

调入并显示3D模型有一套复杂的算法,鉴于本书的宗旨我们不在这里详细讲解它。现在的编程技术也允许我们对一些复杂算法过程隐去,只了解它的应用方法这行了。就像我们现在用的OpenGL一样,每条OpenGL函数都有一个算法,我们只要掌握它怎么用,不用去了解它的具体实现方法一样。

39

主题

102

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2005-6-26 08:14:00 | 显示全部楼层

Re:唐大哥请教您一个问题,关于md2文件读取的。

唐大哥,你这么说我觉得就太失望了!

我老实说我花了48块钱买这本书就是想看看书中我还不太明白的地方,买你书的人也不全是连坐标系都搞不懂的超级菜鸟。md2文件是关键帧时代动画的典范,好多引擎中都用它。我觉得一个真正学游戏变成的人应该知道它的结构,哪怕是大概结构。


抛开这本书上的md2文件不说,就算我单独的向您请教一下这个问题,我想既然您能出这么一本书,这个问题对您应该不是什么大问题。


期待得到您的答复!

42

主题

334

帖子

344

积分

中级会员

Rank: 3Rank: 3

积分
344
发表于 2005-6-26 10:39:00 | 显示全部楼层

Re:唐大哥请教您一个问题,关于md2文件读取的。

    你好。MD2的算法我研究过,要将它说清还真不是个简单事。如果你真的有志搞研究,也不要MD2呀,它已经是过时技术了。MDL比它先进多了,但我想,在真正认识MDL的核心时,更新的动画模型已是市场的主流了。

       这里想和你说两句真心话(也叫伤心话)。
       过去几年,我潜心研究各种最新技术。网络视频传输曾是我的强项,也开发了全国首个纯软件的多媒体教育网。所在单位也不错。但是潜心专研带来什么?我们所处的环境能在技术上有什么突破?反过来想,国内真正缺乏的可能还是技术应用型人材。将先进的技术直接运用,整合到自己产品中,不也是技术人的一种活法。
      于是在我的教材体系中,我想告诉读者的就是,什么东西不必都要自己去做。如果你能在自己有兴趣的领域,搜集到更多的实用算法,掌握它、知道它怎么用,并拿出产品换钞票。这种站在巨人肩上的方法,不会错吧。一个人的时间和精力毕竟是有限的。

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-10-23 17:07:00 | 显示全部楼层

Re:唐大哥请教您一个问题,关于md2文件读取的。

罗嗦什么,是不懂吧?

30

主题

704

帖子

718

积分

高级会员

Rank: 4

积分
718
QQ
发表于 2005-11-3 22:05:00 | 显示全部楼层

Re:唐大哥请教您一个问题,关于md2文件读取的。

哎~如果说48买来的是一个困惑。那可以理解。毕竟不可能很多知识都能吃透
如果说买来的是一个又一个的困惑。那也可以理解。毕竟书的内容和你的知识不成比例
如果说买来的是半知半解模糊不清.那就是出书者人品的问题。

10

主题

27

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2005-11-19 13:51:00 | 显示全部楼层

Re:唐大哥请教您一个问题,关于md2文件读取的。

建议还是去看Andre LaMothe 的3D游戏编程大师技巧
翻译过来的,绝对经典,详细阐述了一个软件3D引擎
D3,OPG里面的算法他都有,帮你解决你心中的问题
还有如果读MD2格式的算法也有,很详细
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 16:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表