3D游戏引擎学习二(HelloWorld源码分析)
来源:互联网 发布:软件开发神话 编辑:程序博客网 时间:2024/05/17 05:57
- 项目结构
HelloWorld$>
- 从box.gpb加载场景
- 设置场景相机的画面比例
- 从加载的场景中找到有向光节点
- 获取光线对象
- 从加载的场景中获取叫box的一个模型节点
- 获取节点模型对象
- 设置模型的材质为res/box.material
- 设置材质的环境光为场景的环境光
- 设置材质的有向光
- 设置材质的有向光的方向
游戏更新和渲染void HelloWorld::update(float>
- 让节点随着时间围绕Y轴旋转
- 渲染场景:_scene->visit 会遍历场景中的每个节点,并调用HelloWorld::drawScene去分别绘制节点
- 渲染节点:渲染节点模型
- 场景文件和材质脚本分析
场景文件(box.gpb)
材质文件(box.material)material>
- 材质名称:box
- 使用一个技术和一个通道
- 顶点着色器程序:res/colored.vert
- 片段着色器程序:res/colored.frag
- 着色器全局顶点变换矩阵设置:绑定系统的顶点变换矩阵
- 着色器全局顶点变换逆向转置矩阵:绑定系统顶点变换逆向转置矩阵
- 着色器漫反射光颜色配置:使用白色光(rgba)
- 渲染器状态属性:采用背面裁剪,开启深度检测
顶点着色器程序
// Inputsattribute>
- 输入:模型空间顶点变量,模型空间法线变量;全局顶点变换矩阵,全局顶点变换逆向转置矩阵
- 输出:视图空间法线
- 计算视图空间位置:全局顶点变换矩阵*模型空间顶点位置
- 计算视图空间法法线:全局顶点变换逆向转置矩阵*模型空间法线
片段着色器程序
// Uniformsuniform>
- 输入:全局漫反射色,环境光色,有向光色,有向光方向
- 输入:顶点法线
- 计算有向光方向和顶点法线的单位向量
- 计算环境光:全局漫反射光*全局环境光
- 计算漫反射光:全局有向光*全局漫反射光*有向光与法线的点乘
- 输出:片段透明度=漫反射色的透明度,片段色=环境光+漫反射光
0 0
- 3D游戏引擎学习二(HelloWorld源码分析)
- 现有游戏引擎分析——3D(二)
- Android游戏引擎《Rokon》学习笔记二:HelloWorld
- 漫谈3D游戏引擎(二)
- 3D游戏引擎系列二
- 开源游戏学习二 - OA.D.游戏引擎一览
- 3D游戏开源引擎分析
- Symbian C++的3D游戏引擎的分析(附源码下载)
- 3D游戏引擎
- 阅读一款3D游戏引擎源码的简明方法
- sqrt函数实现(涉及3D游戏引擎源码)
- 【手游游戏引擎】学习游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D (二)
- 如何学好3D游戏引擎编程(二)
- 3D游戏引擎学习一(创建第一个项目)
- 3D游戏引擎学习三(游戏引擎核心类Game)
- 3D游戏引擎剖析
- 3D游戏引擎剖析
- 3D游戏引擎剖析
- Starling Touch事件
- 在Unity3D里使用JSON格式通过PHP进行数据交换
- ngx_master_process_cycle主循环体
- Spring事务传播机制解惑(转)
- svn locked
- 3D游戏引擎学习二(HelloWorld源码分析)
- 新手入驻,向大家问个好!
- Leetcode Subsets II 有重复元素的组合
- 我的2013碎碎念—一个程序媛这一年的杂七杂八经历
- java NIO基础
- [flex技术]flex内存释放优化的原则
- Leetcode Reverse Linked List II 反转特定区间的链表
- 修改java_home没有用,版本也是以前的版本
- Starling Texture