Focus Pixel

热爱游戏,热爱编程

SIMD Intel Intrinsic 介绍

前言 上篇文章SIMD介绍说了SIMD的历史,以及SIMD汇编指令和寄存器,此篇文章讲述如何使用SIMD。使用SIMD有以下四个方案: 使用库 使用Intrinsic 使用汇编 使用Intel 的 ispc 出于学习的目的,这里使用Intrinsic。 Intrinsic 介绍 Intrisic是Intel使用汇编编写的C函数,在编译时会展开为内联(inline)函...

SIMD介绍

介绍 SIMD(Single instruction, multiple Data),是并行运算的一个种类。硬件支持使用单条指令,同时处理多个数据的运算操作。 上图中使用单条指令需要执行四次得到运算结果,SIMD只需要执行行一次即可得到结果。 1970年SIMD已经被发明了,但是只到1990年代图形显卡被发明出来SIMD才大放光彩。每个处理器厂商都有自己的一套SIMD指令集: ...

2020总结

自从每天做的事情都有一个小的规划和总结后,年终总结写的必要不是很大。可是想想看这是自从毕业后每年年终的传统。虽说每天自己做的事情都有简单的规划,以及总结,但那些记录都非常的零散。将一年的得失简单总结一下也未必不可,也许只是自己心底的惰性给自己找借口罢了。人生不如意事十之八九,不能让自己的懒惰过于主宰自己的心灵。所以还是来一篇短的总结。 今年最令人印象深刻的事情就是“新冠”疫情了。初中三年级...

C++ 中的外部和内部链接

C/C++ 编译流程 首先看一下C/C++编译流程图: 整个流程如下: 预处理器(Preprocess)将头文件内容在cpp文件中展开,展开后的文件这里称作TU(Translation Unit) 编译器(Compile)将TU编译为Object文件 链接器(Link)将Object文件,以及库文件链接生成可执行文件 本文讨论步骤一中展开和步骤三中链接问题。 定义...

如何学习图形学

前言 这里说的图形学主要指的是游戏开发中的图形学。游戏引擎的核心功能包括但不限于:图形渲染,游戏逻辑,音效,资源管理,打包输出游戏应用。市面上大多数游戏引擎使用C++实现,而游戏渲染使用的代码叫做shader,shader大多语法数借鉴于C语言,因此学习图形学第一步就是打好C/C++基础。 具备了和计算机交流的语言之后,就可以选择一个具体方向来学习和研究了。计算机图形游戏领域具体要做的事情...

2019 总结

2019 总结 前言 每年的总结都写的异常吃力,主要原因是自己总结的太细,想把一整年的内容都整理写入一篇博客中,所以造成了拖延,以及焦虑。所幸就不要将一整年的事件全部整理,只写自己想写的内容,以及需要总结和展望的内容。 工作 工作上这几年并没有大的起色,因为和公司的发展息息相关。在新的公司,我们主要开发了三款产品,第一款产品因为题材问题,以及运营的失败,很快就草草了事。后面开发的两款产品...

2018 总结

2018 总结 前言 当有些事情成为一种习惯,就不会那么痛苦。年终总结就是这样,一年又一年,永不缺席。当自己老去,通过这些总结,来看一个普通程序员的潮起潮落,没有伟大的征程,平凡是主题曲。 工作 2017年的项目在经历过多次测试后,我们发现游戏寒冬来临,游戏测试时,无论渠道玩家数量,留存付费数据惨不忍睹。这时候公司启动了新项目的开发。今年我们开启了两个全新的项目,我做的有技术含量的工作是...

我的三观

前言 最近看了陈皓先生的文章《谈谈我的“三观”》,有感而发。2010年我看九天雁翎的博客知道陈皓先生的博客。然后从 google reader 年代就订阅了陈皓先生的博客。后面 google reader 关闭,随转到 feedly旗下,目前博客订阅模式依然是我最喜欢的获取技术资讯的方式。 能关注陈皓先生的博客这么久,两点原因: 陈皓先生不余遗力的告诉大家:学习技术没有捷径,只有踏...

浮点数

浮点数简介 32位浮点数都按照 IEEE 规则定义: 首位是符号位,零为正,一为负 8位指数位,真实指数加127为存储位 23位小数位 浮点数表示为$m \times b^e$,$m$ 称作为有效位,或尾数。$b$ 是基数,$e$ 是指数。 浮点数范围 32位浮点数指数位为8位,由于 0 和 11111111 指数位有特殊作用,所以只有 [1,254] 范围可以用。因此...

三角形渲染旅程

三角形渲染全貌 cpu将三角形从硬盘加载到内存 cpu将内存数据拷贝到gpu显存 gpu按照渲染管线流程将三角渲染完放到目标framebuffer 显示器按照刷新频率从交换区读取三角形信息,显示到屏幕 三角形制作 使用3d制作工具创建3d模型 三角形每个顶点有自己的属性(位置,法线,uv) 导出和导入 使用3d软件将3d模型导出对应的模型文件...