- 博客(32)
- 资源 (1)
- 收藏
- 关注
转载 C++ 预编译解析
转载自:http://blog.youkuaiyun.com/hlfkyo/article/details/5506425C++代码一直以其运行时的高性能高调面对世人, 但是说起编译速度,却只有低调的份了。比如我现在工作的源代码,哪怕使用Incredibuild调动近百台机子,一个完整的build也需要四个小时,恐怖!!!虽然平时开发一般不需要在本地做完整的build,但编译几个相关的工程就够
2017-07-27 14:31:26
1286
转载 ue4 NewObject
出自:http://www.cnblogs.com/wellbye/p/5808894.htmlue4 NewObject/StaticConstructObject_Internal/StaticAllocateObject/FObjectInitializer:对象创建和初始化UObject是一套很复杂的体系,之前读ue3代码时曾分析过其类型系统实现,主要是与UClas
2016-12-06 14:53:20
11920
转载 C++中的内存对齐
转载自:http://blog.youkuaiyun.com/pizi0475/article/details/46872289在我们的程序中,数据结构还有变量等等都需要占有内存,在很多系统中,它都要求内存分配的时候要对齐,这样做的好处就是可以提高访问内存的速度。 我们还是先来看一段简单的程序: 程序一
2016-11-30 18:19:28
494
转载 UE4 初始化流程
http://blog.youkuaiyun.com/flushthink/article/details/40295495自古以来所有的游戏引擎都分为三个大阶段:Init,Loop,Exit。UE4也不例外。首先找到带有入口函数的文件:Runtime/Launch/Private/XXXX/LaunchXXXX.cpp。Windows平台就将XXXX替换成Windows。
2016-11-29 11:48:59
4445
转载 NDK与Cygwin配置
1、Android 开发环境搭建Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。下载 JDK下载 Eclipse下载 Android SDK启动Eclipse , 安装 ADT2、下载安装Android NDK我使用的NDK版本为r5Google 出的最新NDK 为 r6 下载
2016-11-28 16:38:44
440
原创 FRenderCommandFence类
FRenderCommandFence用于game线程和渲染线程的同步,UE4最多允许game领先渲染线程一帧,也就是渲染线程跑第N帧的时候,game线程最多跑第N+1帧,这是因为game线程跑的太快没多大意义,还会耗光内存。因为game线程不断的产生数据传递给渲染线程,如果渲染线程消费数据远远慢于产生数据,就会有越来越多的数据存于内存中。先介绍一下FRenderCommandFence
2016-11-18 15:40:17
2112
原创 UE4渲染任务的产生及入队
渲染任务是如何产生并压入到渲染队列的呢还记得ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER宏吗,该宏的作用就是生成渲染任务并压入渲染队列。这是笔者知道的一种方式,应该还有其他方式。ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER宏展开后会得到下面的核心代码,它的作用是把创建任务并压入渲染队列:TG
2016-10-31 19:55:24
3961
原创 UE4 渲染线程执行任务的流程
先列出相关的类:FTaskGraphInterface: 虚基类,提供了一组管理和操作线程的接口.class FTaskGraphImplementation : public FTaskGraphInterface 该子类实现了基类的接口,在构造函数里创建了N个FRunnableThread和FTaskThreadBase.FTaskThreadBase:继承自F
2016-10-26 19:03:35
5123
原创 UE4 RHI浅析
RHI: Render hardware interface 渲染硬件层接口, 本人理解RHI是一套硬件无关,平台无关的图形渲染API. 它是如何做到与平台无关,与硬件无关的呢?每个RHI接口都对应着多个图形API的实现版本. 对于每个RHI接口,其实都有针对DX11,DX12,OpenGL等版本的实现。对于不同平台,引擎初始化的时候就已经确定要用哪一套图形API了。 之后,调
2016-10-24 19:52:32
9230
2
原创 UE4 ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER 宏
该宏非常重要, 其作用是: 创建一个渲染命令任务,并将该任务压入渲染队列,待渲染线程执行. 主要用于多线程渲染!#define ENQUEUE_UNIQUE_RENDER_COMMAND_ONEPARAMETER(TypeName,ParamType1,ParamName1,ParamValue1,Code) 等效于下面两个宏:#define ENQUEUE_UNI
2016-10-14 18:44:20
3812
转载 UE3的各种viewport和client
转载自:http://www.cnblogs.com/wellbye/p/5366034.html名字里带viewport/client的类不少,以及相关的类:FViewportFrame、FViewportFViewportClient/UScriptViewportClient/UGameViewportClientUClient/UWindowsC
2016-10-14 17:54:43
2104
原创 UE4多线程任务系统详解
首先,了解一下该系统重要的数据类型.1. FQueuedThreadPool:虚基类,队列线程池, FQueuedThreadPoolBase继承自FQueuedThreadPool, FQueuedThreadPoolBase维护了一个TArray QueuedWork(需要被执行的工作), TArray AllThreads(所有的线程) TArray
2016-10-10 18:59:17
8436
原创 C++ *& 连用
在阅读UE4源码时,遇到*&连用时一下子没反应过来,一查才知道就是个指针引用,原来指针也能有引用的,不禁感叹C++功力之弱。虽然大学四年里一直用C++,看过好多本c++的书籍,阅读的引擎源码也不算少,但是毕业后这两年基本都是用lua,C++的功力直线下降了。以此为戒,奋起直追。
2016-09-14 18:57:17
2063
转载 阅读一款3D引擎的方法备忘
转载自: http://www.cnitblog.com/linghuye/archive/2009/11/29/62870.html要带着引擎系统所共有的问题去阅读,不要被具体引擎的实现思路牵着走,要思考这个引擎如何实现或绕过(如不考虑低端机)这些必然要面临的问题.首先,最重要的必须,在Debug模式下调试起来一个主场景程序,然后沿着代码流走几遍,在代码里闲逛,生成第
2016-09-14 18:10:32
342
转载 布料模拟
数字布料模拟技术简介 http://www.tsinghuadmpx.com/zhuantilanmu/shuzibuliaomonijishu/2010/0205/1157.html导读:首先,这是一篇牵扯到数学和物理知识的文章,如果您对文中所涉及的公式有所不明白的话,请在边上摆上一本《高等数学》以及一些物理学常识的知识。 首先来讲布,第一个问题是:为什么要模拟布的运动?
2016-07-06 17:47:50
4254
转载 pthread的各种同步机制
转载自:http://blog.youkuaiyun.com/liutianshx2012/article/details/45743333简述pthread是POSIX标准的多线程库,UNIX、Linux上广泛使用,windows上也有对应的实现,所有的函数都是pthread打头,也就一百多个函数,不是很复杂。然而多线程编程被普遍认为复杂,主要是因为多线程给程序引
2016-06-17 12:05:43
4125
转载 lua虚拟机初始化
转载地址:http://www.cnblogs.com/ringofthec/archive/2010/11/09/lua_State.html1. 创建lua虚拟机lua_State *lua_newstate (lua_Alloc f, void *ud)创建一个新的独立的lua虚拟机. 参数指定了内存分配策略及其参数, 注意, 让用户可以定制内存分配策略是
2016-06-06 15:06:48
545
转载 Unity手游代码更新策略
出处: http://blog.youkuaiyun.com/janeky/article/details/25923151在实际手游的开发运营中,我们需要经常修复bug,增加新玩法。这些通常都涉及到代码的更新。unity游戏代码的更新比较复杂,也存在不同的更新策略,各有优缺点,在不同的平台上做法也不尽相同。这里主要谈一些比较常用的策略和各大手机平台上的策略。大家有更好的思路,欢迎探讨
2016-05-12 11:06:43
716
转载 手机游戏上线前的准备
原地址:http://www.gamelook.com.cn/2015/09/229002游戏研发完成后游戏该怎样推广?如何找渠道?推广时需要注意什么?下面给大家介绍一下具体流程,可能每个公司的上线流程不太相同,在时间点或者在物料准备等有所差异,但大概是这么个流程。首先要确定游戏的定位,其次是联运,独代,还是自己推?然后开始确定渠道,商务对接,竞品调研,与渠道对接sdk。
2016-05-10 18:27:47
1629
转载 手机游戏运行时分析工具
原创地址:http://blog.sina.com.cn/s/blog_73bed4520102w4tt.htmlstep.1 准备工具1.adb连接工具(我用的cofface adb )【cofface】adb基于最新安卓源码编译修改,兼容其它助手,增加参数,支持识别所有机型工具详情:http://blog.cofface.com/archives/569.
2016-04-27 17:30:59
1745
转载 Unity+NGUI性能优化方法总结
原创地址: http://blog.youkuaiyun.com/zzxiang1985/article/details/433392731 资源分离打包与加载 游戏中会有很多地方使用同一份资源。比如,有些界面会共用同一份字体、同一张图集,有些场景会共用同一张贴图,有些会怪物使用同一个Animator,等等。可以在制作游戏安装包时将这些公用资源从其它资源中分离出来,单独
2015-12-25 10:11:21
501
转载 MonoBehaviour介绍
虽然现在为止还没使用过Unity3D进行项目开发,但是在这次求职中,发现大部分是招Unity3D技术岗位,这玩意实在是太火爆了。好吧,现在开始学习Unity3D!原文地址: http://www.cocos2dev.com/?p=486Unity中的脚本都是继承自MonoBehaviour。一、基础函数:创建脚本就默认的update、start方法:(这些官
2015-12-18 17:49:51
576
原创 cocos2dx LOD地形剖析
一般3D游戏的地形都是使用 LOD地形,Cocos2dx的Terrain也不例外, 原因是大的地形绘制需要在短时间内处理上亿个三角形,使用LOD技术能极大的提高地形的绘制效率。 多分辨率网格简化技术/细节层次模型技术(LOD技术),引入“分而治之”的思想,根据地形的不同复杂程度和人眼观察地形的特点,对地形的不同区域采取不同细节的描述和绘制。采用LOD技术绘制地形,在不降低表现效果的
2015-10-28 18:23:04
1946
转载 OpenGL GLSL初始化工作以及如何使用
本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明 原文地址:http://www.zwqxin.com/archives/shaderglsl/communication-between-opengl-glsl.htmlshader代码可以用文本文件保存,可以在程序中用字符串保存,但最终还是必须在程序中以字符串的形式传入
2015-10-23 11:16:28
746
转载 闪电特效算法
转载自: http://blog.youkuaiyun.com/u012945598/article/details/18862091这部短片使用了中点位移法来模拟闪电。中点位移法通常是用于生成分形地形的算法,你会发现闪电的形状类似于一个理想化的山脉的边缘。下面节选的这段闪电递归程序可以帮你完成所有的工作。function drawLightning(x1,y1,x2,y2,d
2015-08-13 12:03:40
3634
转载 Shader 逐顶点和逐像素光照
转自:http://blog.youkuaiyun.com/pizi0475/article/details/6968070逐顶点光照所谓逐顶点光照,简单地说就是在vetext shader中计算光照颜色,该过程将为每个顶点计算一次光照颜色,然后在通过顶点在多边形所覆盖的区域对像素颜色进行线形插值。现实中,光照值取决于光线角度,表面法线,和观察点(对于镜面高光来说)。具体实现时的shade
2015-06-08 19:37:38
2370
转载 Shader Model知识点
原地址: http://www.cnblogs.com/lancidie/archive/2011/08/18/2144714.htmlDirectX 10另一个引人瞩目的特性便是引入了Shader Model 4.0,那么,Shader Model 4.0能够带来怎样的新特性,特别是将它与DirectX 9.0c中Shader Model 3.0相比时? 引入新Shad
2015-06-08 18:01:24
925
转载 C++全局变量的声明和定义
(1)编译单元(模块) 在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作: 第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件; 第二步,将工程中所有的obj文件进行LINK,生成最终.exe文件。 那么,错误可能在两个地方产生: 一个,编译时的错误,这个主要是语法错误; 一个,链接时的错误,主要是重复定义变量等。
2015-06-08 15:30:58
380
转载 OpenGL ES 2.0 Shader
这里介绍的与shader相关的部分主要分为三个阶段:1) 加载shader,其中包括加载shader、编译shader 、连接shader并且产生着色器程序id(文中的1、2、3部分);2) 获取指向顶点着色器相应数据的Index(文中的第4部分);3) 根据Index向顶点着色器中传递数据(文中的第5 部分);1.
2015-06-05 15:18:07
510
转载 HDR和bloom效果的区别和关系
什么是HDR? 谈论游戏画面时常说的HDR到底是什么呢?HDR,本身是High-Dynamic Range(高动态范围)的缩写,这本来是一个CG概念。HDR的含义,简单说,就是超越普通的光照的颜色和强度的光照。计算机在表示图象的时候是用8bit(256)级或16bit(65536)级来区分图象的亮度的,但这区区几百或几万无法再现真实自然的光照情况。目前普通的图片都是由三原色
2015-05-26 18:01:55
6953
转载 OpenGL帧缓存对象(FBO:Frame Buffer Object)
转http://blog.youkuaiyun.com/xiajun07061225/article/details/7283929原文地址http://www.songho.ca/opengl/gl_fbo.html但有改动。OpenGL Frame BufferObject(FBO)Overview: 在OpenGL渲染管线中,几何数据和纹理
2015-05-22 14:37:02
519
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人