如果播放的是游戏人物,那跟玩家操控的人物模型一样,是用三位建模软件,手工建立出来的,想象下衣服店里脱掉衣服的模特。
这种模型的数据结构就是大量的三角面片,每个三角面片就是三个顶点,如何把三角面片的表示的人脸显示的光滑,减小三角面片增加分辨率,OpenGL的渲染模式,Smooth是怎么解决光滑的我还不知。
人物的不同动作,连续编辑成路径,就是动画。
表示模型的坐标都是三维的。现在考虑一个问题,显示器是二维的,如何表现三维的运动员?透视,远小近大。要有一套换算,把模型此刻的顶点左标,换算到屏幕1024x768的格子上。
你按下旋转键,视角变了,屏幕(投影面)变了,哪怕人物没动,顶点的坐标没变,刚才的变换也得再算一遍。让你看上去是三维,视角变了。
想通这个,你的显示器屏幕,和游戏场景里的屏幕,就没有区别。游戏里更简单,固定视角。
游戏人物的模型是资源文件,每一时刻的位置动作(编号)都可以用数字存储,
这样就能实现历史回放。比如dota的比赛录像回放。
光秃秃的模型要有肤色、头发、胡子、球衣,可以是提前绘制的模型,也可以是渲染时计算的。
如果游戏里的屏幕,播放真实的NBA比赛,比赛视频已经有了,比如mp4格式。
逐帧读出来,一个内存块,交给OpenGL,计算好目标位置,源的大小、目标屏幕的大小,进行逐像素投影、缩放、绘制。没有三角面片。
我也是粗浅的理解。请大神补充纠正。
【 在 seeeU 的大作中提到: 】
: 就是普通视频,比如NBA游戏的场馆里的大屏幕播放了刚才勒布朗詹姆斯扣篮的回放或者本场精彩镜头集锦,或者NBA本季的宣传片,游戏里经常出现这种
:
--
FROM 1.86.63.*