13 安柏霖

尚未进行身份认证

《天涯明月刀》引擎架构师,游戏开发者 learn, think, dev and play

等级
TA的排名 517

dxgi的概念以及奇怪问题处理

dxgi:Microsoft DirectX Graphics Infrastructure (DXGI) 是处理与kernal driver以及系统硬件的交互。与d3d之间的关系可以从图中看到。这里与dxgi最常见的几个事情:adapter:gpuoutput:显示器等一些swap chain比如《无限法则》最近实现的feature里就可以罗列系统中的显卡,以及玩家可以自己决...

2019-11-16 19:07:28

好莱坞的危机

这个是看听一些分析文章,然后的一些想法,由于没有对文中内容做第一手资料的确认挖掘,未必能还原事情所有真相。包括这个等等:https://new.qq.com/omn/20190424/20190424A0MPSR.html首先现在大家时间都比较有限,在娱乐过度的时代,那么只有时间看顶级大片了。所以一定程度上,电影制作上也就严重的偏向大片。但是大片的高额成本,使之变成一个风险特别高的事情,...

2019-11-16 14:10:08

Siggraph2019 RealTimeRender“观影推荐”

siggraph的分量自不多说,每年paper一放出来,心情仿佛是《星际穿越》上映一样,何况siggraph年年有呢!links:http://advances.realtimerendering.com/s2019/index.htm这里列一下siggraph2019的paper阅读推荐,本来这里的内容是我11月初时候团队内部技术分享的一次课,这里就也用文章写出来。面向的同学是有一定的...

2019-11-12 08:38:02

[siggraph19]《荒野大镖客2》的大气云雾技术(4/4)

第四部分,也是ppt中的第三部分,integration,也就是把计算好的光照等和场景集成起来。这里是一个integration完整的示意图,我们接下来可以一步步看看。sky scatteringsky scattering算法上是Precomputed Atmospheric Scattering,三个特点:考虑了earth shadow分帧实时更新的存放在32x16x32的L...

2019-11-11 13:26:38

[siggraph19]《荒野大镖客2》的大气云雾技术(3/4)

froxelfroxel也是最近开始出现的一个新名词:frustum voxel;也是用voxel的形式,存储低精度的场景volume信息,然后用于低频信息渲染,比如scattering lighting;《荒野大镖客2》中的存了三种信息:shadowmateriallighting : 结合前两者来计算shadow volume,注意这个不是阴影算法的shadow volu...

2019-11-11 08:57:45

[siggraph19]《荒野大镖客2》的大气云雾技术(2/4)

接下来我们看第二部分,这部分主要谈渲染部分,包括scattering 和lighting的render,相对内容也多一些。voxel+raymarching处理大气效果时候,为了兼顾近处的精度和场景的宏大,近处使用了...

2019-11-10 17:45:43

[siggraph19]《荒野大镖客2》的大气云雾技术(1/4)

技术一直行业领衔,但是一直低调的rockstar,终于在siggraph19放了大,展示了《荒野大镖客2》(大表哥2,RedDead:RedemptionII)中的大气云雾技术。看的也是近几年最过瘾的一篇了,high点:是发售游戏中实际使用的,完整的,系统化的技术合集(完全不同于是一个个的突破点)代表当前最强的大气系统技术探索很多,积累深厚,运用纯熟理论和实际开发有很好的平衡,...

2019-11-04 10:56:39

[siggraph19]NextGen geometry processing--mesh shader

siggraph 19 上nvidia公布了mesh shader的扩展,在19年10.28日的Directx12的dev preview放出了mesh shader的扩展。一句话用微软的话来说就是:the next generation of GPU geometry processing capability。当然便于理解,我们一句话概括,就是将compute shader来代替之前的g...

2019-11-02 09:48:32

[sig19]寒霜引擎中strand-based(基于线)的头发渲染

siggraph19上面,frostbite发布的新的头发渲染技术,搬运如下:https://www.bilibili.com/video/av73692434/这篇可以说是我个人对siggraph19最喜欢的文章,把hair render往前推进了一步,主要亮点:开始使用线来做头发渲染(strand based),这个也构成了头发品质飞跃的一个好的基础进一步处理头发中multiple...

2019-10-28 10:00:33

复杂度控制--单脑原则

进一步谈及开发中的复杂度控制–单脑原则。就是一个模块(无论多大的模块)的一个层级,需要至少一个大脑(一个人)对此有完全的控制,这块的复杂度才能被真正控制。最优解作用域如同全局规划算法,对于一个域,求它的最优解,那么就要在这个范围内去进行(使用迭代规划等等)。如果两个人合作,各自领一半的作用域,那么得出来的解就不是这个域的最优解。所以这里至少有一个面向整个作用域的人来求最优的程序解法,代码...

2019-10-20 17:45:07

代码overview/architect工具research

随着项目开发的深入,一方面规模在不断地变大,一方面各个小组的leader可以覆盖的范围也在变大。这里能对代码有一个全局的掌控就非常重要了。在本blog已经多个地方谈到这个问题了,比如:https://blog.csdn.net/toughbro/article/details/88774873简单讲,我们需要充分的控制复杂度,将之压倒最低,那么项目的全面质量都会有提升。那么一个好的能把代码...

2019-10-19 17:59:43

c++类型隐式转换的危险

很久之前团队关掉了隐式转换的warning(因此相应的treat warning as error)就也关掉了。这个中间有着非常多的可怕的点,我觉得c++根本不应该把这个功能弄进来,都需要显式的转换;要知道一个这样的错误需要多长时间的排查。历史上出现问题的次数虽然不多,但是每一个都非常的难以排查,但这个其实默认就可以处理掉。enum EAType{ ECT_a, ECT_b, EC...

2019-10-11 21:38:54

dx12中rendertarget大小匹配导致的一个bug

比较有意思。问题是如果depth stencil大小和color render target大小不一样,比如depth stencil大小比较小,那么画一个全屏quad,就只能覆盖其中一部分比如上图中,只画了一部分,原因就是depth stencil 的resolution其实更小。做法上,可以选择在渲染底层实现一个check:drawcall之前对size做一个匹配检查,color rt...

2019-10-07 15:12:52

开发状态与心流

原来标题倒是用了“几重境界”,鉴于写技术,也是随笔,就别这么“重口”了吧。简述几种情况,有意识的把自己和团队带到这种情况下,是非常好的。下下:不认同这种在做没兴趣的事情的时候常常出现。如果不能改变,还听任之,后果非常的严重。这个情况在工作之后一直都没出现过,上学时候有必考的科目,自己又不喜欢会出现,硬顶着确实非常难。这时候,找到其背后的意义,找到其中的很棒的点就非常重要了,从反对到接纳...

2019-10-03 19:20:41

持续编程--切身体会

开发中总会伴随状态的起伏,工作中也会有疲劳和精力充沛的状态。我个人也是如此,有时候要打起精神来做坚持,或者是要多咬咬牙来坚持一些,或是要调整身心,避免自我调节不足,节奏被打乱带来的一些效率不足。每当处于这样的状态的时候,也常常想,组里的同事也要面临同样的挑战。这也是持续开发的一个有力的地方,多一分切身体会,对其中的难处难点能有一个感知,在讨论计划的时候,都能覆盖到,而非一味地去push。总...

2019-10-02 14:14:52

一些心理上的优势状态和劣势状态

优势状态就是清明无念不急躁不懈怠,思绪积极而不驻留。这里更多列一下劣势状态的典型:劣势状态1:大战之后的放松思维假象就是,大战都趟过去了,后面的小版本还会出事?实际上,心态一放松,敏锐度立刻成倍下降,虽然版本难度下降,但是本质上的错误的难度并没有降低。之前遇到一种特别煎熬的情况:大版本之后,往往一些小修小改,这时候长舒一口气,人懈怠下来,结果出事了,这时候心理上已经进入放松懈怠状态,强...

2019-09-29 11:17:17

编程中的“手误”

由于我们是人类,所以一些低级的失误总是出现。随处可见的,数字写错,“==“写成“=“,等等,这一波开发。从最基础上来看,我们的生物特性决定不能完全避免,但是依旧有很多“技术”可以回避和大幅度缓解这些问题。这里小结下对此的应对:平和开发状态开发过程中始终保持一个不急不躁的开发状态。而且任何情况下,都要知道自己代码只要上量,则必然出现失误,在“必然失误”的前提下去带着谦卑平和之心来写代码。...

2019-09-20 09:19:48

dx12中的一些“难缠”的坑

在开发过程中,有两个bug,属于同一类:贴图读出来是纯黑色。然后在debugger里面看起来这个贴图都是对的,但就是sample出来是0;究其原因,就是对于贴图的描述与其实际情况不符,包括不限于与创建时候的格式等不符合与使用的情况(本身是texture array,用成了texture cube)都会有这个情况。简言之,debugger里能看到,但是sample出来是黑,大概率就是描...

2019-09-08 23:26:45

持续编程&交叉知识

编程和技术基本功的训练应该是每日必修的课程。“编程如逆急水行舟”过去大约4周,是一个项目节点,所以开始整顿之前落下的一些团队管理事项,跨团队的工作,以及一些招聘工作。所以编程就停止了一段时间。然后再着手处理大量的编程时候,就发现需要适应一段时间,快速精准的写出好的代码就没那么顺了。需要适应1,2天,然后才能回到非常好的状态。so,我们可以看到,编程和技术敏感度这个事情,要维持在一个较好...

2019-08-20 12:24:24

[TechTeam]进击的CodeReview

本文最开始是从鹅厂内部的技术论坛的一个问题回答,这里做一些整理形成一个文章。记录下团队构建以来,9年间code review从无到有到系统化的历程。“生产关系与生产力”回过头来看,code review也好,各种开发方式也好,很像生产关系(开发方式)与生产力(团队战斗力,文化等)之间的关系,需要匹配,恰当的配合可以互相发展,反之在团队初期强推“最终版”,恐怕也是不行的。btw,技术方案的...

2019-08-19 00:51:15

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。