
图形学/3D技术
文章平均质量分 78
leonwei
腾讯专家游戏开发工程师(T12/T4-1) 《黎明觉醒》引擎组组长
展开
-
PBR以及在Disney和UE渲染模型中的使用
PBR,基于物理的渲染模型,是当前主流游戏引擎使用的真实感3D渲染模型,在游戏场景渲染中,它用更接近光学物理的方式,建立一个对全场景材质的大一统shader。大一统shader的好处包括:统一美术制作管线加快制作效率,对动态光照环境的更耗的适应性,减少shader维护的负担等。本文总结了PBR的理论知识以及具体在Disney和UE中的典型应用。1 PBR的理论基础1.1光波光波能量描述...原创 2020-01-19 18:52:54 · 5183 阅读 · 2 评论 -
基于深度学习的渲染 Deep Learning Based Rendering
此文作为siggraph17的《Deep Learing:The Futrure of Real-Time Rendering?》的整理笔记。就像《必然》中说的那样,如同这个时代的互联网一样,AI已然成为下个时代的主角, AI让计算机拥有对复杂算法的决策能力,是解决很多复杂问题的终极武器。它尤其擅长解决这样的问题:复杂的、可并行计算的、能用已有经验推测任意结果并...原创 2019-03-08 12:39:24 · 4539 阅读 · 1 评论 -
颜色 /About Color --图形学的B面(二)
--图形学的B面(二)本文谈...原创 2018-12-14 17:00:05 · 1600 阅读 · 0 评论 -
RTR4 拾遗(一)-- 图形学的B面
RTR(Real Time Rendering)对于游戏图形开发来说是本宝书,最近对新版的RTR4进行重读,知识需要经过自己的消化重表述才能成为自己的,所以在这里对里面一些重要内容以我自己的理解重新整理,这篇是关于第8章的Light and Color。它对应于RTR3的第7章advanced shading,后面会陆续更新。写本连载的文,希望自己能够坚持下去 图形学的Se...原创 2018-12-05 10:22:19 · 2390 阅读 · 0 评论 -
图形编程中常用浮点数及其精度剖析
图形学中经常要涉及使用各种格式的浮点数类型,如float,half,也会经常用到各种格式的浮点数类型PixelFormat,例如R10G10B10A2,R11G11B10,RGBHalf...。在合适的情况下使用合适的浮点数类型,是保证效率和效果的基础。虽然有些是大学本科课程,但牢记于脑海并时刻保持对每种浮点数精度的敏感也不易,此文总结并详细讨论一下各种常见浮点数的精度,范围,精度分布及应...原创 2018-09-26 17:55:34 · 3887 阅读 · 0 评论 -
谈谈法线图的压缩
贴图压缩是游戏开发中常见的一个问题,不过说到法线图的压缩,其实里面就有一些特殊的问题要处理。前段时间做了一次贴图通道的优化,打算用两个通道表示法线图并且和其他通道合并到一张图里,以减少采样次数。这个过程中陆续挖掘了一些问题,记录一下。为什么要用3个通道来表示法线? 我们通常会把法线贴图归一化成一个3元向量n(x,y,z)来表示,常识上来看,因为这个n是归一化的,所以用两个...原创 2018-04-11 21:51:40 · 4825 阅读 · 2 评论 -
针对移动端TBDR架构GPU特性的渲染优化
TBDR(Tile-Base-Deffered-Rendering)是现代移动端gpu的设计架构,它同传统pc上IR(Immediate-Rendering)架构的gpu在硬件设计上是差别很大的。手游正是运行在这些移动端的TBDR架构上,所以手游的渲染优化在硬件的角度上讲有其独特之处,甚至一些特点和优化点与PC是大相径庭的,基于硬件的优化是应用程序优化很重要的一部分,最近阅读了一些tbdr...原创 2018-02-09 14:49:25 · 16038 阅读 · 8 评论 -
textrue坐标到uv的映射
前两天被shader里面一个奇怪的bug困扰了一下,其实就是一个最简单的问题,我有一个rgbafloat的贴图,只能点采样,因为存储的不是颜色是数据不能线性插值,而这时候我已知当前点的texture坐标x y和贴图尺寸w h如何计算这个位置的uv供shader采样? 我直接使用了x/(w-1), y/(h-1),结果是有问题的,如果x的取值是【0, w-1】,把他除以w-1,变成了原创 2017-10-23 11:58:30 · 3330 阅读 · 0 评论 -
简单理解spherical harmonic lighting(球谐光照)
1.球谐光照球谐光照在现代游戏图形渲染领域应用很广,用于快速的模拟复杂的实时光照,例如unity中的light probe以及一些不重要的实时光源,可以用球谐光照快速的计算。球谐光照的优点是运行时的计算量与光源的数量无关,如果参数足够却可以较好的模拟实时的光照结果。球谐光照的原理不仅涉及图形学,概率论,信号分析,微积分等大量复杂数学公式,这里对这个球谐光照的背景和应用做个最简单的理解原创 2017-10-18 10:07:45 · 21099 阅读 · 3 评论 -
物理渲染(PBR)-基于物理的光照模型
对于图形学领域和图形学开发来说,实时渲染的光照模型是一个最最基础的问题,简单的来讲,光照模型就是用来描述在真实环境下,物体表面一点在在光照下的反射颜色值.有许许多多的光照模型试图用数学的公式来模拟这个问题,当然这即是一个物理问题,也是一个数学问题.大学时最初接触计算机图形学时,对书本上关于光照模型的推到过程就极为不解,最近为了研究基于物理的光照模型看到一篇10年siggrgrah的course,他是一个对基于物理的光照模型的很详细的教程,对光照模型的很多问题突然很多清晰明了了起来,尤其这篇文章中对于diff原创 2015-03-28 16:59:24 · 29822 阅读 · 5 评论 -
基于GPU Skin的骨骼动画Instance的实现
很多游戏类型需要在场景中表现大量的角色,而这些角色大多使用骨骼动画的方式来表现,传统的基于CPU蒙皮的方式在手机上对角色数量的限制非常大,本文实现了一种基于GPU Skin的方式,并且结合GPU Instance技术,将大量同类角色的蒙皮到绘制全交给GPU并行进行,并合并了同类角色的批次,本文对着种做法的性能做了测试和分析。原创 2017-08-18 20:39:14 · 14351 阅读 · 3 评论 -
Unity3d中渲染到RenderTexture的原理,几种方式以及一些问题
虽然RenderTexture这个技术是个普遍使用的技术,但是用好它还是要理解他的底层原理和避免一些使用的问题。这里就UNITY3d中的RenderTexure介绍Rendertexture的底层原理和使用时可能遇到的坑和效率问题。原创 2017-02-10 18:24:46 · 78291 阅读 · 18 评论 -
优化shader程序的一些tips
在写shader的时候,其实一些写法对于其执行影响非常大,而且由于gpu和cpu在架构上的不同,代码的优化思想也不一样,最近一直在写几个shader,为了性能问题,查阅了很多资料,把一些tips总结下来。原创 2017-02-17 19:24:58 · 7522 阅读 · 0 评论 -
请问FXAA、FSAA与MSAA有什么区别?效果和性能上哪个好?
转载自 知乎 文刀秋二 的回答 http://www.zhihu.com/question/20236638/answer/14438218首先所有MSAA, SSAA, FXAA, TXAA等都是抗锯齿(Anti-Aliasing)技术。锯齿的来源是因为场景的定义在三维空间中是连续的,而最终显示的像素则是一个离散的二维数组。所以判断一个点到底没有被某个像素覆盖的时候单纯是一个“有”或者“没转载 2016-09-05 18:46:26 · 20704 阅读 · 0 评论 -
vr的延迟和渲染效率优化与Nvidia VRWorks
vr现在正处于风生水起的阶段,但是vr的性能一直是大问题,最主要的问题就是响应延迟,玩家改变位置到这一位置的图像被cpu提交,gpu渲染,同步刷新到头部显示设备上,这中间的延迟会导致用户的头晕,减少相应的延迟,是vr从硬件到软件一直在优化的问题。Nvidia针对这个,新推出了VRWorks组件,这是一套软硬件结合的改善响应延迟以及提高vr渲染效率的方案,从硬件上做了一些改进和加速原创 2016-03-23 21:49:56 · 5988 阅读 · 0 评论 -
法线贴图中法线值的坐标空间选择
法线贴图是目前游戏中被广泛使用的技术,通过从贴图采样法线可以表现物体的凹凸,在法线贴图的实现上,有一个重要的问题需要考虑,就是法线贴图上的法线值应该取在哪个空间.一 模型空间:法线就直接取建模时的模型空间,这是最容易想到的方法。这种方法在runtime的时候,将光线从世界坐标转换到模型的局部坐标,然后在局部空间同每个pixel的采样到的法线做光照计算。这种方法有个最大的缺点就是法线贴原创 2015-10-17 17:31:32 · 2777 阅读 · 0 评论 -
字体(字符)的渲染方法
最近开始在啃Game Programming Gem 8.里面有一些不错的文章,及时咀嚼及时反思 记录于此。一直以为字体渲染是件简单的事 ,因为电脑上这么多字体显示么,但是今天看了这文章才知道3D技术里的字体渲染是两回事。平时win里面看到的文字这些基本都是通过GDI在cpu上运算绘制(或者也加入了显卡绘制)的,不过在3D游戏里面看到的字体包括GUI等则不是这个流程的,它们都跟其他图形的渲染一原创 2012-10-14 22:52:52 · 3076 阅读 · 1 评论 -
垂直同步、绘制效率、显示器刷新频率与帧率
从后缓存到显示器 最近在看D3D的架构,在这过程中对帧率这个一直认为很简单的东西有了更多的理解。在过去看来,帧率就是显卡渲染一帧所用时间的倒数,现在看来远远不是这个样子。要真正理解这个问题要从绘制数据从显存中到屏幕的这一个过程来说起,下图就是这个过程 显存中存在前后缓存,前缓存就是屏幕上最终看到的像素,而后缓存是绘制使用原创 2012-09-20 01:32:31 · 8097 阅读 · 2 评论