A-SHIN BLOG

好记性不如烂笔头

线性变化、仿射变换、正交矩阵概念及矩阵求逆

"游戏引擎"

“Yeah It’s on. ” 前言 基础概念: 3D向量(x,y,z)变换的处理方式如下: 旋转变换:乘法运算 缩放变换:乘法运算 平移变换:加法运算 加入齐次坐标(x,y,z,w)概念后,使得平移变换也能使用矩阵乘法。点w为1,向量w为0。 其中旋转缩放属于线性变化,平移为非线性。 仿射变换:先进行线性变换,再进行平移变换的变换称之为仿射变换。 如果矩阵第四行为[0,0,0,...

QT 游戏引擎编辑器制作注意事项

"游戏引擎"

“Yeah It’s on. ” 前言 QT编写引擎编辑器中遇到的问题,逐一记录 正文 由于引擎底层使用了glew、freeglut库。编辑器引用引擎库后,使用freeglut库函数会报错, 改用官方glut后函数能正常使用。但是官方glut库引擎不支持鼠标滚轮事件。因此又换回了freeglut库,编辑器中不使用该库的函数即可。编辑器初始化时需调用glewInit(); QT的pa...

QT Visual Studio 2015 部署

"游戏引擎"

“Yeah It’s on. ” 前言 计划用QT编写引擎编辑器,抽空部署了下QT开发环境。 正文 从官网下载商业试用版下载器,打开选择MSVC 2015 32-bit进行下载 完毕后添加如下路径到系统环境中:D:\Qt\5.10.1\msvc2015\bin 为了在vs2015中使用Qt5,需要首先安装插件。在visual studio 2015中依次点击“工具”-“...

U3D绑定注入Lua数据编辑器扩展

"开发笔记"

“Yeah It’s on. ” 前言 为了贯彻数据驱动,序列化绑定,使lua编程和C#一样便捷,在此扩展了注入lua的各种属性类型,方便编辑器中编辑及在lua中直接使用。 编辑器界面: Lua中便捷使用: 正文 实现 Injection.cs中定义了各种属性类型,每条属性包含Name、Type、Value,容器类型属性可嵌套包含其他属性。 目前支持类型如下: LuaI...

U3D热更新方案

"开发笔记"

“Yeah It’s on. ” 前言 实现自动打包资源,使用MD5码校验一键化CDN更新资源筛选,游戏启动热更新解决方案。脚本使用xlua。在此简单介绍使用方法,最后给出方案源码工程链接。 正文 首先打开Window->Asset Bundle Builder界面,如下图 AssetBundleBuilder.cs编辑器扩展,显示Resources下文件夹。勾选需要打包的...

NGUI源码阅读笔记

"开发笔记"

“Yeah It’s on. ” 前言 由于新开项目开发周期短人手少,最近忙于NGUI界面制作及LUA逻辑编写。之前也一直打算系统地看遍NGUI源码,过年刚好有时间看了一部分,在此记录些要点备忘。剩余部分后续阅读更新。 正文 UIRoot: UI分辨率设置 activeHeight计算 transform.localScale = 2/activeHeight cont...

GLSL多光照模型

"游戏引擎"

“Yeah It’s on. ” 前言 用GLSL实现ambient direction point spot multi-lighting 正文 首先vert shader 输出每个点世界空间中的坐标和法线(##如果是非统一缩放,计算法线时需要乘以逆转置矩阵##) // lighting world space out vec4 vs_fs_normal; out vec4 v...

可编程管线线性雾

"游戏引擎"

“Yeah It’s on. ” 前言 用GLSL实现了简单的linear fog. exp fog ect.待后续加入… 正文 首先vert shader 计算出每个点到视点距离,我是在视图坐标系下计算的: uniform int useFog; out float vs_fs_distance; if(useFog == 1) { vec4 mvPosition = ...

游戏开发笔记(五)

"开发笔记"

“Yeah It’s on. ” 前言 接前篇早些年游戏开发工作中的笔记,放上来以防丢失。有些规则现在可能不适用了(如一些是U3D4早些版本的记录)。有些因为水平有限,有理解错误的地方,望指正!~ 笔记比较乱,没整理 正文 Unity3D ECS: convert to entity 需要下载安装hybrid renderer包,否则运行后game object不可见。 EC...

游戏开发笔记(四)

"开发笔记"

“Yeah It’s on. ” 前言 接前篇早些年游戏开发工作中的笔记,放上来以防丢失。有些规则现在可能不适用了(如一些是U3D4早些版本的记录)。有些因为水平有限,有理解错误的地方,望指正!~ 笔记比较乱,没整理 正文 UnityEngine GameObject : Base class for all entities in Unity scenes. Component...