8 realxie

尚未进行身份认证

网易游戏研发工程师

等级
TA的排名 6k+

C++核心指南-中文版本-(翻译持续更新中)

“在c++内部是一种更小、更简单、更安全的语言。”– 本贾尼·斯特劳斯特卢普C++核心指南 像C++一样是在本贾尼·斯特劳斯特卢普的领导下共同努力的成果,也是是多个组织进行多年讨论和设计的成果。它们的设计鼓励通用性和广泛采用,但是可以自由地复制和修改它们,以满足组织的需要。开始这些指南可以在CppCoreGuidelines中找到,该文档使用GH风格的MarkDown。该指南刻意保持...

2019-05-24 19:25:28

MacOS 玩转C++17

距离C++17发布已经半年有余,由于编译环境的问题一直无法体验到C++17的编程乐趣,趁着Mac系统更新,抢先体验一下C++17的强大之处。1. 关联式容器遍历新方式      &

2018-07-06 11:32:21

[实时渲染] 3.2 可编程着色阶段

现代着色阶段(着色模型4.0,Vista上Directx 10以及更新版)使用通用着色器核心(common-shader core),这是说顶点,像素和几何着色器共享一个编程模型。本书中我们将来区分应用程序开发者可见的通用着色器核心和统一着色器,一种将所有都映射到相同该核心的GPU架构,见18.4节。通用着色器核心是一种API,统一着色器是一种GPU特性,早期的GPU的顶点和像素着色器含有极少的共

2017-11-07 12:12:34

[实时渲染] 3.1 GPU管线综述

第二章介绍了GPU实现的几何与光栅化概念上的管线阶段,被分为几个不同程度配置性或编程性的硬件阶段。图3.3展示了根据可配置性和可编程性进行颜色分类的几个阶段。注意到这几个被分割的物理阶段与第二章讲的功能阶段有轻微的不同。     顶点着色器是完全可编程的阶段,通常用于实现模型视图变换,顶点着色以及投影(一个功能阶段)。几何着色器是一个可选的完全可编程的阶段来处理图元(点,线和三

2017-11-07 12:08:16

[实时渲染] 3. 图形处理单元-GPU

“显示就是计算机”- 黄仁勋     历史上,硬件图形加速开始于管线的尾端,最初用于执行三角形扫描线的光栅化,后续代的硬件工作从管线的尾端到更前端的应用程序阶段的算法都被提交给硬件加速器,这意味着硬件相较于软件的优势仅仅是速度,但速度是非常重要的。     过去的几十年里,图形硬件经历了不可置信的变化,第一块消费级的带有硬件顶点处理的图形芯片(NVIDIA的GeForce256)发

2017-11-07 12:07:11

[unity3d] 模型XRay效果实现

XRay效果常常用来显示被墙体及其它物体遮挡的物体的轮廓。算法原理:使用两个Pass对人物进行绘制,其它第一个Pass正常对人物进行绘制,第二个pass使用半透明模式根据Z-Test绘制被遮挡的部分。引擎对不透明物体(Opaque)和半透明物体进行分开绘制,并且一定是先绘制Opaque物体,然后再绘制半透明物体,所以可以在第二Pas

2017-09-17 15:37:03

[实时渲染] 2.5 回顾渲染管线

点,线和三角形是组成模型和物体的渲染图元,想像应用是一个交互的计算机辅助设计(CAD)应用,用户正在检查一个手机的设计,我们将要跟随这个模型通过整个图形渲染管理,这包含3个主要阶段:应该程序,几何以及光栅化阶段,场景被透视地渲染到屏幕的窗口上。在这个简单的例子中,手机模型包含线(来显示部件的边缘)和三角形(来显示表面),某些三角形被二维图片进行贴图来呈现键盘和屏幕。在这个例子中,着色完全发生在几何

2016-04-10 22:15:43

[实时渲染] 2.4 光栅化阶段

给定变换和投影过的顶点以及相关的着色数据(来自几何阶段),光栅化阶段的目的是计算并设置被物体覆盖的像素的颜色,该过程也称为光栅化或扫描转换(scan conversion),是将屏幕空间带z值(深度值)的二维顶点及其相关的各种着色信息转换到屏幕上的像素。     如几何阶段相似,该阶段也被分成几个功能阶段:三角形设置,三角形遍历,像素着色,混合,如图2.8所示。2.

2016-04-10 22:14:09

[实时渲染] 2.3 几何处理阶段

几何处理阶段的职责是逐多边形和逐顶点操作,该阶段被进一步分成如下几个阶段:模型视图变换,顶点着色,投影,裁剪以及屏幕映射(图2.3),再次强调一下,根据实现的不同,这些功能阶段可能相当也可能不相当于管线阶段,有时几个连续的功能阶段可以合成一个管线阶段(与其它管线并行地运行),有时一个功能管线可能被分成几个更小的管线阶段。         在极端情况下,在整个渲染管线中的所有阶段可以以软

2016-04-10 22:13:29

[实时渲染] 2.2 应用程序阶段

因为应用程序阶段在CPU上执行,所以开发者对要做的事情可以有全面的把控,因此开发者可以选择实现方案以及后续修改以提高性能,当然这里的修改也可能会影响到后续阶段的性能,例如,应用程序阶段的算法及设置可以减少需要渲染的三角面的数量。     在应用程序的最后,几何图元被提交给几何处理阶段进行渲染,这些可渲染的图元点,线以及三角形可能最终呈现在屏幕上,这是应用程序阶段最重要的一任务。

2016-04-10 22:12:41

[实时渲染] 2.1 架构

在物理世界中,管线的概念以及不同的形式来证明自己,从工厂组装线到缆车,也被用在图形处理中。     管线包含了多个阶段[541],例如,在输油管道中,油料不能从第一个阶段到达第二阶段直到第二阶段中的石油已经移到第三阶段,等等。没意味管线的速度取决于最慢的阶段,不管其它阶段的速度多么地快。     理想情况下,非管线系统被分割成N管线阶段可以达到N倍的加速,增加性能提升是使用管线的主要原

2016-04-10 22:11:52

[实时渲染] 2. 图形渲染管线

"一条锁链不比它最弱的一环坚实” (A chain is no stronger than its weakest link)     ----匿名     本章节呈现了实时渲染中最核心部分:图形渲染管线,简称管线。管线的主要功能是根据给定的虚拟摄像机,3维模型,灯光,着色方程,纹理以及其它的资源来生成一个2维的图像,渲染管线是实时渲染的底层工具。图2.1描述了管线的流程,在该

2016-04-10 22:10:13

cocos2d-x中的图片异步加载机制

3.X版本的cocos2d-x使用C++11标准,最新的C++11标准引入了对线程的原生支持,下面对其做简单介绍。在C++11标准中可以使用std::thread来快速创建一个线程:          void threadFunc1(){               std::cout "threadFunc1:\t"                // sleep 1 秒 

2016-04-03 22:33:33

cocos2d-x中的引用计数原理

本文基于3.2版本,适用于3.0及其以上版本,2.X版本可能是使用不同的方式进行处理,本文未对比2.X版本的源代码。首先看一下cocos2d-x中对象的继承体系:                                               从图中可以看出Ref是cocos2d-x中一切对象的起源(这里只列出了一部分的类),继承自Node节点的对象引擎会在每帧对其进行更新re

2016-04-03 22:30:39

游戏中的设计模式(1)--观察者模式

软件需要设计,那么如何设计,设计的灵感源于实践,前人的设计经验被总结为设计模式,所以学习设计模式或许可以更快的get到设计这个技能。虽说设计模式不是银弹,但笔者相信一定是一颗具有杀伤力的子弹。

2015-06-28 16:26:50

面向对象编程 VS 面向过程编程

对于每个有计算机背景的同学来说C++必定是一个入门级的语言,除此之外我们或多或少的都有接触过Java,Python,Php等等语言,无一例外,他们都是面向对象的编程语言,那么当我们在使用这些语言,使用Class来进行包装我们的代码的时候我们是在进行面向对象编程吗?    对于这个问题之前并没有去思考过,只是最近有与人讨论面向对象这个问题才开始思考,思来想去也没有办法使用一句话来说明白到底什么才

2014-12-07 14:37:09

C++中单引号“字符串”的用法

我们知道在C++中单引号用来表示单个字符,那么当用单引号括住多个字符时会出现什么情况呢?

2014-04-09 23:08:32

Lua银弹之table

来做一个Brain Storm,细数一下你曾经使用过的数据结构: map, hash_map, array, queue, stack, heap...或许还有很多其它的数据结构,相信在开始接触每个数据结构的时候都花了很多的时间去了解它们的特性,因为他们每一种都是足够的复杂。那么作为一个简单至极的语言,Lua是怎么实现这些的呢?答案是Lua中根本没有这些数据结构,汗了吧!更汗的是,Lua其实只一个真正意义上我们所谓的数据结构table,所以在这个简单的语言中我们可以使用的只能table这一种数据结构,下面我

2014-04-07 22:21:52

游戏开发入门

对于程序员而言,游戏开发是一件非常有趣的事情,特别是对大多数的计算机专业相关的学生而言,或多或少都会有一点的游戏情结,所以笔者在后续的文章中将向没有接触过游戏开发的同学讲解一些简单的游戏开发常识。

2014-04-07 16:53:03

简约而不简单的拟物化设计

简约而不简单的拟物化设计 -------新蛋网ipad 视觉点滴前言    作为Newegg UED团队的成员,我荣幸参与了Newegg iPad项目的UI设计。在项目即将上线,把几个月来的劳动成果进行了梳理和总结,现分享给大家,欢迎各位童鞋参与讨论。新蛋网,众所周知,一个以3C产品为主的电子商务网站;iPad,划时代地将我们带入了平板电脑时代,移动电子商务,这是一个全新的销售

2013-03-07 13:34:22

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!