自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (8)
  • 收藏
  • 关注

原创 吾读 - 《深入理解计算机系统》第三章 程序的机器级表示 (二) 跳转和循环

上一篇我们初步认识了寄存器,学会了几个简单的汇编指令,例如mov,以及几种寻址模式。寻址模式不仅在mov指令中有用,各种指令都是通过这种方式来读取或写入内存中的值。一个程序有各种函数,一个函数中也可能有复杂的结构,判断、循环等等,这些东西在汇编中又是什么样的呢?if-else, for, while, switch这些常见的结构会被翻译成怎样的汇编代码呢?3.5 算术和逻辑操作本节要接触多更多汇编操作指令,主要以算术及逻辑操作为主,分为四类,参见下图:加减乘,没有除,这是为什么呢?因为除法比.

2020-09-08 22:22:02 504

原创 吾读 - 《深入理解计算机系统》 第三章 程序的机器级表示 (一) 寄存器初步认识

3.2 程序编码第一章已经介绍过代码如何编译成可执行程序的几个步骤,最终的可执行程序是二进制的,那么系统是怎么读这些二进制的呢?3.2.1 机器级代码能够理解汇编代码以及它是如何与原始的C代码相对应的,是理解计算机如何执行程序的关键一步。基本概念:程序计数器 成为%eip,表示将要执行的下一条指令在存储器中的地址。整数寄存器有8个,可以存储32位的值。条件码寄存器保存着最近执行的算术指令的状态信息,用来实现条件控制。浮点寄存器也有8个。到了汇编这一层,已经不区分有符号和无符号,各种数据

2020-09-06 18:54:12 517

原创 吾读 - 《深入理解计算机系统》第二章 信息的表示与处理 (二)浮点

浮点数绝对是计算机系统里最神秘的一种数值。在不了解它之前,很难想象同样是32位数值,int只能表示最大2的31次方,而浮点的表示范围却是-126到正的127次方。以及浮点还能表示无穷大,NaN等特殊值。我们也被教育浮点数计算的一些计算规则,例如很大的浮点跟小的浮点计算的时候,要先算小的。例如判断浮点跟0时,时常使用 if (fval <= 0.00001f) 这种表达式来判断数值是不是可以被当做0了。今天我们就来一起走近神奇的浮点数。2.4 浮点浮点数对形如V=x∗2yV = x*2.

2020-09-04 22:01:51 1619

原创 解决Win32程序内存超2G崩溃问题

长期以来,我们游戏的PC版本一直饱受崩溃的困扰。其中最大的崩溃原因是在各服务器一村的地方开启大视距之后,就很容易崩溃。一度怀疑是内存问题,但在实际运行中发现应用占用的内存在1.7G左右就崩溃了。后续经过一系列排查,崩溃的堆栈也让人匪夷所思。例如在一个函数内部,前几行各数值显示还正常,后面指针指向的内存就如同是被释放过的内存。这不禁让人联想到野指针重复释放的问题。顺着这个方向,加了不少log,最终无济于事,无法确定问题所在。经过多次测试、调试,终于有几次是崩溃在glBufferData函数调用中,并且有G

2020-08-31 10:53:37 2731

原创 吾读 -《深入理解计算机系统》第二章 信息的表示和处理一 整数

第二章 信息的表示和处理2.1 信息存储三种最重要的数字编码:无符号:基于传统的二进制表示法,表示大于等于0的数字二进制补码是便是有符号整数的最常见方式。浮点数是表示实数的科学计数法的以二为基数的版本。由于表示的精度有限,浮点数运算时不可结合的。计算顺序会影响到结果。2.1.2. 字节大多数计算机使用8位的块,也叫做字节,用来作为最小的可寻址的存储器单位。在脑海中记住A,C,F对应的十进制和二进制数值,其他的BDE就可以通过跟前面的相对关系来得到。A 10 1010,

2020-08-30 22:45:45 350

原创 吾读 -《深入理解计算机系统》第一章计算机系统漫游

第一章 计算机系统漫游1. 编译源程序 -》预处理器 -》被修改的源程序 -》编译器 -》汇编程序-》汇编器 -》.o文件,可重定位的目标程序 -》 连接器 -》可执行程序。预处理阶段 预处理器(cpp)处理include,宏等,得到.i中间文本文件编译阶段 编译器(ccl)将.i文件翻译成汇编程序,得到.s文本文件汇编阶段 汇编器(as)将.s文件翻译成机器语言指令,得到.o二进制文件链接阶段 链接器(ld)链接其他需要的.o文件,得到可执行目标二进制文件gcc -

2020-08-30 16:05:35 220

原创 UE4 角色预览与头像生成 CaptureSceneComponent2D 看这一篇就够了

游戏开发中的捕获需求在游戏开发过程中,对角色的预览,和某些情况下生成头像是比较常见的需求。有些引擎,可以创建一个额外的场景和相机,然后将需要的内容放置到合适的位置,然后可以获得想要的图像。在UE4中不是这样,没法创建其他的场景,我们需要使用CaptureSceneComponent2D,字面意思看出来这是个场景捕获的组件,它就是用来捕获我们想要的场景内容到2D图像上。CaptureScene...

2020-04-12 23:42:05 4253 3

原创 Roblox 开发过程中的一些小技巧

1. 建筑方块预览在制作建造类方块游戏的时候,我们可能需要提前让玩家知道,一个东西摆放出来的位置、样子等等。这个时候我们希望能显示半透或者其他什么效果的实际模型给玩家预览。Roblox为了安全考虑,目前已经禁止在LocalScript中创建Part等模型(以前有个模式可以,现在正在废弃,不要使用)。那么怎么实现我们这个需求呢?由服务器创建一个目标模型,挂载玩家的Player下面。不要放在...

2019-10-10 15:17:54 5714 3

原创 Roblox 插件制作

官方相关的一些文档:Intro to PluginsCreateDockWidgetPluginGui首先在ServerStorage下面建一个Script,然后右键脚本,选择Save as Local Plugin 然后保存到本地脚本创建Plugin下的toolbarlocal toolbar = plugin:CreateToolbar("BlockTools") -- 创...

2019-09-22 17:57:52 5712 1

原创 Roblox GUI 动画

GUI动画官方文档-UI动画官方文档-TweenSize参数说明本节中界面动画主要使用tween和tweenservice来进行界面动画。在设计界面的时候,tweening可以用来平滑的变换界面的位置和状态。比如:平滑的放大一个选中的按钮从屏幕的边缘滑入或者滑出界面当血量发生变换的时候,血条进行动画过渡。1. 基础变换在界面控价下添加一个LocalScript来控制界面的动作...

2019-09-15 20:20:16 1170

原创 Roblox GUI 简介

做任何游戏都离不开界面,Roblox游戏也不例外,那么Roblox的界面系统到底该如何使用呢?都有什么控件可以使用呢?StarterGui点击StarterGui旁边的加号就可以创建ScreenGuiScreenGui相当于是一个容器,一个画板,上面现在什么也没有。接下来我们就创建一个具体的控件。在Roblox里面的坐标系跟Windows的坐标系一致,左上角是(0,0)位置在explo...

2019-09-15 20:14:40 2327

原创 UE4 版本迭代、资源热更、pak更新方案

版本patch方案详细实施方案注意:以下讨论的内容是客户端热更,打包的时候勾选使用pak文件。前置知识详细可参考之前的文章 , 这里再简单回顾一下。客户端进行打包之后,所有的资源及蓝图文件都在paks文件夹中的pak文件中。paks文件夹中所有的pak文件,会全部自动挂载。所谓挂载,就是读取pak中的文件列表信息,并不加载实际的资源文件。实际加载文件的时候会遍历所有挂载的...

2019-07-12 15:38:36 8850 7

原创 UE4中Pak文件的读取规则

UE4是如何读取Pak的?多个Pak文件直接如何相互作用?UE4又是按什么规则来加载Pak中的文件?

2019-07-12 14:52:07 8166 3

原创 google登录、成就、支付接入

一 登录接入准备登录官方文档在上面的网址中,点击 CONFIGURE A PROJECT来创建一个登录的工程按要求生成 SHA-1 keytool -exportcert -keystore your_keystore -list -v注意 ==如果编译的版本使用的keystore和这里用的keystore不同,则登录时会log中会报错 Status{statusCode=DEVELOPE

2018-04-19 15:39:07 4275 3

原创 《Unity Shader入门精要》笔记(六) 高级效果

第十二章 屏幕后处理效果什么叫屏幕后处理效果? 一种屏幕特效处理方法,应该是基于场景绘制完之后,再处理的一些效果,所以叫后处理。有什么样的效果可以在在屏幕后处理中完成? 其实场景渲染完之后,就相当于是一个图片了,对图片的特效的都可以在这里完成,比方对比度、亮度、饱和度、模糊、黑白色等等。 在相机上挂上脚本,实现OnRenderImage函数 Graphics

2018-01-25 11:32:16 323

原创 《Unity Shader入门精要》笔记(五) 高级纹理and纹理动画

第10章 高级纹理什么是立方体纹理?有哪些用途?如何采样? 环境映射的一种方法,有六面。提供一个三维向量坐标,然后从立方体中心出发,与六面之一相交。 实现简单快速,效果好。场景变化的时候需要重新生成纹理。 立方体纹理不能模拟多次反射的结果 主要用于天空盒及环境映射。如何生成立方体纹理?如何使用? 特殊布局的纹理,也可设置为Cubemap 自己提供六张

2018-01-23 18:24:42 293

原创 《Unity Shader入门精要》笔记(四) 光照and阴影的理解

第九章 更复杂的光照渲染路径是指什么?什么作用? 一种能让Unity知道设定哪些预制变量数据的参数。有前向渲染路径、延迟渲染路径和顶点照明渲染路径 通过在每个Pass中设置Tags{“LightMode” = “ForwardBase”}来实现 参考UntiyPassTags设置 前向渲染:深度检测,对各片元进行依次进行多个光照计算,每个光源都要计算一次Pass。(缺

2018-01-22 19:42:32 1763

原创 《Unity Shader入门精要》笔记(三) 基础纹理及透明效果

第七章 基础纹理如何理解纹理?纹理和单纯的颜色有什么区别吗?普通贴图纹理是存储一系列颜色的文件,有了纹理坐标,通过一定的函数就能获取到指定的颜色。本质上跟直接使用颜色没太大区别。然而在使用中,我们可以把部分纹理的数据处理成别的含义,就是高度、法线等不同含义的纹理,<font color=tomato>纹理可以存储任何表面属性</font>。通过不同的数据综合处理,可以得到很多不一样的效果。

2018-01-21 16:10:11 456

原创 《Unity Shader入门精要》笔记(二) 光照初体验

第五章 开始Unity Shader学习之旅Shader的属性是用来干嘛的?如何定义?Pass中如何使用这个属性? 属性主要是在Unity的编辑器面板显示、修改用的。定义参考UntiyShader官方文档 pass中想要使用这个属性,需要定义一个同名变量。shader中属性变量一般以下划线开始,例如fixed4 _Color;指定顶点、片元着色器函数 着色器代码在C

2018-01-18 22:43:42 357

原创 《Unity Shader入门精要》笔记(一) 预备知识及数学基础

第一章 简介nothing第二章 渲染流水线什么是流水线? 什么是管线 GPU渲染的过程就流水线。 Shader在管线中的位置? Shader能做到那些功能,做不到哪些? 为什么裁剪在顶点、几何着色器之后? 几何着色器可能会修改顶点。什么是DrawCall? DC为什么慢? DrawCall就是CPU发起一次绘制请求,绘制相关

2018-01-18 15:17:07 460

转载 GPU图形绘制管线(二)

摘自康玉之《GPU编程与CG语言之阳春白雪下里巴人》第二章,侵删。2.2 Primitive Assembly && Triangle setupPrimitive Assembly,图元装配,即将顶点根据 primitive(原始的连接关系),还原出网格结构。网格由顶点和索引组成,在之前的流水线中是对顶点的处理, 在这个阶段是根据索引将顶点链接在一起,组成线、面单元。之后就是对超出屏 幕外的三角

2017-07-17 13:21:48 642

转载 GPU图形绘制管线(一)

摘自康玉之《GPU编程与CG语言之阳春白雪下里巴人》第二章,侵删。图形绘制管线描述GPU 渲染流程,即“给定视点、三维物体、光源、照明模 式,和纹理等元素,如何绘制一幅二维图像”。本章内容涉及 GPU 的基本流程和 实时绘制技术的根本原理,在这些知识点之上才能延伸发展出基于 GPU 的各项 技术,所以本章的重要性怎么说都不为过。欲登高而穷目,勿筑台于浮沙!本章首先讨论整个绘制管线(不仅仅是 GPU

2017-07-17 13:19:21 828

原创 irrlicht动作融合的使用姿势

动作融合是一种将当前动作跟目标动作中骨骼位置进行动态插值的算法。得到的结果可以使角色的动作表现更加的平滑。irrlicht引擎也提供了相应的功能,下面就这个功能的使用方法进行说明。功能函数引用下irrlicht的代码//! Sets the transition time in seconds (note: This needs to enable joints, and setJointmode

2017-05-12 13:40:41 763

原创 irrlicht动画优化

最近的项目中使用鬼火irrlicht作为3D引擎,项目逐渐有了点规模。随后发现当同屏人数比较多的时候,帧率下降的厉害。使用xcode的timing profile检测之后发现人物获取动画帧比较耗时。先看一下鬼火的代码:在void CSkinnedMesh::getFrameData函数中获取position的代码// 先寻找当前帧附近的帧,如果满足要求则可以快速返回if (positionHint

2017-05-03 11:34:43 426

原创 libevent 配合 openssl android编译配置

因为项目中要使用https,所以接入了openssl模块。中间遇到一些问题,学到不少东西,这里跟大家分享一下。下载openssl & libevent下载openssl: openssl_github 这里使用1.1.0c版本下载libevent:libevent_github 因为使用libevent连接,libevent也要下载,这里使用2-1.6版本下载openssl andriod编

2016-12-10 19:11:12 1648 2

计算机图形学几何工具算法详解- 带目录

计算机图形学几何工具。 要学习计算机图形学,对几何相关的一些概念、工具、算法不了解是不行的。 本书对矩阵以及各种三角函数二维、三维变换都有详细的阐述,非常适合图形工作这

2019-01-10

游戏引擎架构高清版

本书同时涵盖游戏引擎软件开发的理论和实践,并对多方面题目进行探讨

2018-02-09

SDL的c++版本(BDSDL)

C++包装的SDL,自己写的,目前接口还不多,与大家分享 需要把Bin目录设置到系统目录中,或者将Bin中内容拷入工程目录下

2009-12-19

Effective C++(more) 网页版

之前记得有人说过,网页版的更容易学习,据我所见,确实如此,简单、方便、快捷,想要学好C++的朋友都应该拥有此书,并好好学习。

2009-11-29

C++ 名家对话系列

使用对话的方式,将技术渗透在故事之中,将一些平时很难注意到的技术难点将的清晰易懂。作者是现今C++标准委员会主席Herb Sutter

2009-11-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除