3D游戏引擎学习二(HelloWorld源码分析)

本文详细介绍了游戏开发中如何从场景文件加载并设置场景相机画面比例、找到光照节点、渲染场景及材质配置,包括材质环境光、有向光等参数的调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 项目结构
    HelloWorld$>
    
    • 从box.gpb加载场景
    • 设置场景相机的画面比例
    • 从加载的场景中找到有向光节点
    • 获取光线对象
    • 从加载的场景中获取叫box的一个模型节点
    • 获取节点模型对象
    • 设置模型的材质为res/box.material
    • 设置材质的环境光为场景的环境光
    • 设置材质的有向光
    • 设置材质的有向光的方向

    游戏更新和渲染
    void HelloWorld::update(float>
    
    • 让节点随着时间围绕Y轴旋转
    • 渲染场景:_scene->visit 会遍历场景中的每个节点,并调用HelloWorld::drawScene去分别绘制节点
    • 渲染节点:渲染节点模型
  2. 场景文件和材质脚本分析
    场景文件(box.gpb)
    材质文件(box.material)
    material>
    
    • 材质名称:box
    • 使用一个技术和一个通道
    • 顶点着色器程序:res/colored.vert
    • 片段着色器程序:res/colored.frag
    • 着色器全局顶点变换矩阵设置:绑定系统的顶点变换矩阵
    • 着色器全局顶点变换逆向转置矩阵:绑定系统顶点变换逆向转置矩阵
    • 着色器漫反射光颜色配置:使用白色光(rgba)
    • 渲染器状态属性:采用背面裁剪,开启深度检测

    顶点着色器程序

    // Inputs
    attribute>
    

    • 输入:模型空间顶点变量,模型空间法线变量;全局顶点变换矩阵,全局顶点变换逆向转置矩阵
    • 输出:视图空间法线
    • 计算视图空间位置:全局顶点变换矩阵*模型空间顶点位置
    • 计算视图空间法法线:全局顶点变换逆向转置矩阵*模型空间法线

    片段着色器程序

    // Uniforms
    uniform>
    

    • 输入:全局漫反射色,环境光色,有向光色,有向光方向
    • 输入:顶点法线
    • 计算有向光方向和顶点法线的单位向量
    • 计算环境光:全局漫反射光*全局环境光
    • 计算漫反射光:全局有向光*全局漫反射光*有向光与法线的点乘
    • 输出:片段透明度=漫反射色的透明度,片段色=环境光+漫反射光



3D游戏引擎编程-3D.Game.Engine.Programming.pdf,作者:Stefan Zerbst & Oliver Duvel,本书是英文版,大小 271 MB,被压缩成两部分分别上传。这是第一部分,第部分下载地址:http://download.youkuaiyun.com/source/2697012。 IT业中游戏业最吃香?为什么呢?大家说有多少网民没有玩过游戏?不过中国游戏人才也是缺啊!看看盛大为了招收人才自己到各个大学去招收计算机本科生啊!中国最大的游戏公司竟然自己去招收人才,可想而知啊!!中国游戏人才到底缺多少!我们缺的不是玩游戏的,而是做游戏的!大家想必都有过要自己做游戏的梦想吧?为什么没有实现呢?因为觉得自己办不到?错!你能办到!从现在开始吧!我们一起将韩国泡菜赶出国门!一起努力实现中国第一个暴雪公司!创造中国自己畅销全世界的游戏!以中国的武侠魅力去震撼世界!我们不要让外国人牵着鼻子走! 我们技术上比不过美国,美工上比不过日本,创意上比不过韩国!我们有什么可以自豪的呢?中国游戏产业的振兴就靠我们这一代,不要让我们的下一代都只玩美国的XBOX,日本的PS,韩国的传奇!我们看到了中国游戏业这块大蛋糕已经让外国瓜分的剩不下多少了!中国的公司为了代理外国的一个游戏争的头破血流!这样的事情不要让他们再一次次重演了! 游戏开发职业虽然含金量较高,但从业门槛也高高在上,因此,学习前一定要先看看自己是否适合这一职业。判断标准主要有以下七点:一看学历,一般需有大专以上的教育背景;看年龄,游戏业是年轻人的行业,18-35岁是最佳年龄段;三看逻辑性,从业人员除具备IT基本知识外,还要有相当强的逻辑能力,否则将难以担当复杂的编程工作;四看知识面,游戏软件开发设计编剧、美术、音乐、动画、程序等诸多方面,知识面宽泛;五看创新能力,游戏开发需要经常翻花头,对开发者创新能力的要求较高;六看合作能力,游戏软件开发往往由一个小组负责,需要开发者有团队合作精神;七看兴趣,游戏开发是一项异常枯燥的工作,如果对此没有足够的兴趣,将很难做好。 发布的这些书都是原版的英文书籍,没有中文的,因为中文翻译的慢!大家如果想从事游戏开发,我真的建议大家先学英语,英语是你一切的一切的基础!大家也可以下载一个金山词霸来边翻译边看!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值