摘要:
q3光照效果的一部分,利用了多重纹理。预先计算好光照效果,生成光照效果位图。 程序加载相应的纹理,以及对应的光照位图. 不加光照的效果 打开光照效果 至此,q3的渲染仿真已经实现了差不多了,接下来玩玩q3的碰撞检测 ... 阅读全文
摘要:
其实不是什么大问题,翻开任何一入门级的游戏开发教程,都会在纹理这一节提到,解决的方法也很简单, 对于opengl相关的函数调用为 glTexImage2D (GL_TEXTURE_2D, miplevel, GL_RGB, scal... 阅读全文
摘要:
在得到q3 bsp数据后,就可以根据当前所在结点,以及pvs画出。 所有的pvs还需要做进一步裁减,即,在当前可视截体(所谓的frustm)内的节点,才会被绘制 如下图所示,白色的是当前节点,浅灰色是处于frustum当中的pvs节点,深灰色不处于frus... 阅读全文
摘要:
把q3的多边形导入至程序中, 主要是导入bsp树,以及pvs, q3代码对每个pvs节点,与视截体进行测试,如果与视截体相交,才会画 会一个大循环,判断当前叶子节点有哪些pvs,判断这些pvs节点是否落在视截体之内 ... 阅读全文
摘要:
笔者一直认为骨骼这个名字不够形象 或者称为mesh变换采样加权点更适合, 这么一说想必读者们就能立刻明白骨骼动画是怎么回事。 定下根点节,然后每个字节点依次根据平移,旋转,算出变换矩阵,完成mesh中每个顶点 的坐标计算。 注意子节点的变换矩阵... 阅读全文
摘要:
看完了q3的port生成,以及pvs的生成 做个记录 由于q3 bsp树生成时,将场景中所有的brush平面都参与, 所以就可用bsp树的分割平面来切分port port从根节点开始,初始winding是根节点分割平面,与场景最大包围盒平面切割而成 之... 阅读全文
摘要:
阅读q3的bsp实现,做一些随笔记录,免得自己也忘了。 首先谈到的是brush概念。 笔者用最通俗的方法来解释一下brush 用q3场景编缉,画一个六面体(长方体),观察得到的map文件 会看到里面记录了一个brush信息,其实就是记录了brush的六... 阅读全文
摘要:
找一本opengl(或者directX)的入门教程,了解相应的api 了解的过程,顺便回忆一下线性代数相关的零点知识,主要是矩阵相关的那一块。 知道一些概念,比如判断一个点在平面的哪一则,如何旋转矩阵等(学习骨骼动画时,必不可少的知识) 基本上知道一点皮毛,入... 阅读全文
摘要:
地形绘制比较简单,各种3d引擎实现基本相似, 引入一个高度图,用颜色深浅来表示高度。 依次扫描,根据高度,生成相应的三角形,最终形成地形 鬼怪引擎,将地形场景作为八叉树场影管理的子类进行派生。 采用的是性价比较高的GeoMipMap算法, 即把地形... 阅读全文
摘要:
原文 http://www.mralligator.com/q3/#Leaffaces Unofficial Quake 3 Map Specs Introduction[top] This document describes... 阅读全文