leonwei
码龄14年
  • 1,351,452
    被访问
  • 146
    原创
  • 79,585
    排名
  • 1,388
    粉丝
关注
提问 私信

个人简介:腾讯专家游戏开发工程师(T12/T4-1) 《黎明觉醒》引擎组组长

  • 加入CSDN时间: 2007-12-11
博客简介:

leon

博客描述:
【腾讯光子招聘ue引擎开发 有意向私信】
查看详细资料
  • 3
    领奖
    总分 383 当月 10
个人成就
  • 博客专家认证
  • 获得494次点赞
  • 内容获得232次评论
  • 获得722次收藏
创作历程
  • 1篇
    2021年
  • 2篇
    2020年
  • 3篇
    2019年
  • 7篇
    2018年
  • 10篇
    2017年
  • 18篇
    2016年
  • 10篇
    2015年
  • 18篇
    2014年
  • 26篇
    2013年
  • 17篇
    2012年
  • 10篇
    2011年
  • 12篇
    2010年
  • 29篇
    2009年
  • 1篇
    2008年
成就勋章
TA的专栏
  • Unity3D游戏开发
    25篇
  • c/c++
    16篇
  • Cg Programming
    3篇
  • linux
    5篇
  • nvdia opengl sdk
    2篇
  • OGRE/CEGUI
    8篇
  • openGl
    15篇
  • QT图形界面框架变成
    4篇
  • Windows平台
    6篇
  • 图像处理
    1篇
  • 杂类
    7篇
  • 网络编程
    2篇
  • 数据结构与算法
    6篇
  • python
    1篇
  • lua
    4篇
  • D3D
    10篇
  • 图形学/3D技术
    18篇
  • AI
    2篇
  • 通用编程\架构
    1篇
  • 计算机安全
  • OpenCL
    4篇
  • 游戏开发-客户端
    3篇
  • Unity 3D
    26篇
  • C#
    3篇
  • Android/IOS
    2篇
  • VR
  • UE4
    6篇
  • 机器学习
    1篇
兴趣领域 设置
  • 游戏
    unity游戏引擎ue4图形渲染
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

基于UE4的多RHI线程实现

1 UE4的现有多线程架构UE的多线程渲染结构如下图, 它有几个特点game thread 负责逻辑tick,render thread 负责culling、batching和draw api的生成, rhithread 负责drawapi的执行game和render两个线程最多可以差一帧,即前后两帧的gam额和render可以并发,通过Fframeendsync做同步render 和rhi之间的关系是帧内的合作关系,即不能达到前后两帧render和rhi的并发,前一帧的drawapi最多在下一帧
原创
发布博客 2021.10.13 ·
1113 阅读 ·
1 点赞 ·
0 评论

UE高级性能剖析技术(三)-- Android内存分布和优化

在基于ue的手游开发中,经常会发现android系统的实际内存占用要比我们预估的高很多,优化内存的占用就要先明确究竟每1k实际的内存占用分布在哪里及如何运用工具有效的获取真实的内存组成,本文将结合项目经验详细介绍这个部分,并据此分别介绍一些常用的瓶颈和优化。最终了解你的android程序中的每1k内存。 Android程序内存分配原理 Android内存管理基础Android内...
原创
发布博客 2020.04.11 ·
4899 阅读 ·
9 点赞 ·
4 评论

PBR以及在Disney和UE渲染模型中的使用

PBR,基于物理的渲染模型,是当前主流游戏引擎使用的真实感3D渲染模型,在游戏场景渲染中,它用更接近光学物理的方式,建立一个对全场景材质的大一统shader。大一统shader的好处包括:统一美术制作管线加快制作效率,对动态光照环境的更耗的适应性,减少shader维护的负担等。本文总结了PBR的理论知识以及具体在Disney和UE中的典型应用。1 PBR的理论基础1.1光波光波能量描述...
原创
发布博客 2020.01.19 ·
3628 阅读 ·
1 点赞 ·
2 评论

UE高级性能剖析技术(2) -CPU帧率瓶颈和卡顿

CPU上帧率低和卡顿是性能优化中最易出现的一部分,尤其对于手游,提到卡,就大概率是在CPU上出现的问题,CPU上的卡顿一般是卡逻辑或是卡渲染,本篇将详细系统的介绍基于UE的手游对CPU瓶颈的剖析方法。低帧率和卡顿首先低帧率和卡顿是两种完全不同的瓶颈类型,虽然归根到底都是某个函数执行的过慢引起的,但是定位和解决方法并不一样。低帧率瓶颈是需要统计一段时间内CPU把更多的时钟耗费在了哪些函数上...
原创
发布博客 2019.08.27 ·
6213 阅读 ·
12 点赞 ·
1 评论

UE高级性能剖析技术(1)-- RHI线程(渲染提交)

在最前面基于UE的手游客户端的性能主要由这七大部分构成:CPU逻辑,CPU渲染,图形API(提交),GPU渲染,内存,带宽,加载时间。这几个基本元素又会合力衍生出一些新的性能指标,例如功耗(往往同gpu负载和带宽紧密相关)。同时这七部分又构成一个闭合的木桶,最长的一块是主要瓶颈,并且瓶颈可以在这几块转移流动。作为开发者我们解决性能问题的步骤一般都是按照做性能剖析,解读结果,定位问题,增加剖析代...
原创
发布博客 2019.07.11 ·
10259 阅读 ·
15 点赞 ·
6 评论

基于深度学习的渲染  Deep Learning Based Rendering

此文作为siggraph17的《Deep Learing:The Futrure of Real-Time Rendering?》的整理笔记。就像《必然》中说的那样,如同这个时代的互联网一样,AI已然成为下个时代的主角, AI让计算机拥有对复杂算法的决策能力,是解决很多复杂问题的终极武器。它尤其擅长解决这样的问题:复杂的、可并行计算的、能用已有经验推测任意结果并...
原创
发布博客 2019.03.08 ·
3261 阅读 ·
5 点赞 ·
0 评论

颜色 /About Color --图形学的B面(二)

                                                                                                                                                                                        --图形学的B面(二)本文谈...
原创
发布博客 2018.12.14 ·
895 阅读 ·
4 点赞 ·
0 评论

UE4 Render System Sheet(UE4渲染系统概览)

UE4的渲染系统代码量庞大,复杂,我们写UE渲染相关的功能需求的时候,经常需要反复翻阅它里面的数据结构,pipeline,这里用一张图,把UE4的渲染系统的脉络梳理进来,让大家都能更方便的修改UE引擎的渲染功能(你需要点下放大镜)  ...
原创
发布博客 2018.12.05 ·
3006 阅读 ·
9 点赞 ·
2 评论

RTR4 拾遗(一)-- 图形学的B面

        RTR(Real Time Rendering)对于游戏图形开发来说是本宝书,最近对新版的RTR4进行重读,知识需要经过自己的消化重表述才能成为自己的,所以在这里对里面一些重要内容以我自己的理解重新整理,这篇是关于第8章的Light and Color。它对应于RTR3的第7章advanced shading,后面会陆续更新。写本连载的文,希望自己能够坚持下去 图形学的Se...
原创
发布博客 2018.12.05 ·
1827 阅读 ·
4 点赞 ·
0 评论

图形编程中常用浮点数及其精度剖析

    图形学中经常要涉及使用各种格式的浮点数类型,如float,half,也会经常用到各种格式的浮点数类型PixelFormat,例如R10G10B10A2,R11G11B10,RGBHalf...。在合适的情况下使用合适的浮点数类型,是保证效率和效果的基础。虽然有些是大学本科课程,但牢记于脑海并时刻保持对每种浮点数精度的敏感也不易,此文总结并详细讨论一下各种常见浮点数的精度,范围,精度分布及应...
原创
发布博客 2018.09.26 ·
1944 阅读 ·
4 点赞 ·
0 评论

谈谈法线图的压缩

      贴图压缩是游戏开发中常见的一个问题,不过说到法线图的压缩,其实里面就有一些特殊的问题要处理。前段时间做了一次贴图通道的优化,打算用两个通道表示法线图并且和其他通道合并到一张图里,以减少采样次数。这个过程中陆续挖掘了一些问题,记录一下。为什么要用3个通道来表示法线?        我们通常会把法线贴图归一化成一个3元向量n(x,y,z)来表示,常识上来看,因为这个n是归一化的,所以用两个...
原创
发布博客 2018.04.11 ·
3321 阅读 ·
4 点赞 ·
2 评论

针对移动端特性的渲染优化(续)

    本文接着之前的文章《基于移动端tbdr特性gpu的渲染优化》,继续补充一些移动端渲染优化的点尽量使用direct rendering 模式,很多游戏使用了很多的后期处理,所以需要先渲染到贴图上,然后再一遍遍的blit 到屏幕上,blit操作是一个昂贵的操作,它涉及到对当前framelist data 的立即绘制(理论上framelist data越晚绘制越好,越利于延迟渲染),然后额外的f...
原创
发布博客 2018.03.20 ·
2594 阅读 ·
6 点赞 ·
4 评论

针对移动端TBDR架构GPU特性的渲染优化

    TBDR(Tile-Base-Deffered-Rendering)是现代移动端gpu的设计架构,它同传统pc上IR(Immediate-Rendering)架构的gpu在硬件设计上是差别很大的。手游正是运行在这些移动端的TBDR架构上,所以手游的渲染优化在硬件的角度上讲有其独特之处,甚至一些特点和优化点与PC是大相径庭的,基于硬件的优化是应用程序优化很重要的一部分,最近阅读了一些tbdr...
原创
发布博客 2018.02.09 ·
13746 阅读 ·
25 点赞 ·
8 评论

Sparse Virtual Texture (虚拟贴图技术)

Virtual texture 技术用于解决3D场景中大量贴图而内存有限的情况,它的思想可以参考虚拟内存。 虚拟内存技术中,物理内存是有限的,但是虚拟内存可以远远大于物理内存,虚拟内存被抽象成一个个page即分页文件,page可以真实的载入到物理内存中,也可以存在与磁盘文件上,寻址时采用的内存地址采用一个表来映射到具体的的内存位置,如果映射到物理内存里,即hit,如果在磁盘的page上,将其载入物
原创
发布博客 2017.11.03 ·
12114 阅读 ·
5 点赞 ·
1 评论

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 ·
2822 阅读 ·
0 点赞 ·
0 评论

简单理解spherical harmonic lighting(球谐光照)

1.球谐光照球谐光照在现代游戏图形渲染领域应用很广,用于快速的模拟复杂的实时光照,例如unity中的light probe以及一些不重要的实时光源,可以用球谐光照快速的计算。球谐光照的优点是运行时的计算量与光源的数量无关,如果参数足够却可以较好的模拟实时的光照结果。球谐光照的原理不仅涉及图形学,概率论,信号分析,微积分等大量复杂数学公式,这里对这个球谐光照的背景和应用做个最简单的理解
原创
发布博客 2017.10.18 ·
18412 阅读 ·
22 点赞 ·
3 评论

基于GPU Skin的骨骼动画Instance的实现

很多游戏类型需要在场景中表现大量的角色,而这些角色大多使用骨骼动画的方式来表现,传统的基于CPU蒙皮的方式在手机上对角色数量的限制非常大,本文实现了一种基于GPU Skin的方式,并且结合GPU Instance技术,将大量同类角色的蒙皮到绘制全交给GPU并行进行,并合并了同类角色的批次,本文对着种做法的性能做了测试和分析。
原创
发布博客 2017.08.18 ·
11430 阅读 ·
7 点赞 ·
3 评论

Unity中depth pass的优化以及谈谈unity中的Framebuffer

最近遇到个很小但是很有意思的问题,在unity中如何从屏幕copy depth texutrue出来用? 这个问题的来源是我发现在unity在移动平台上为了得到深度图,通常需要一个单独的pass,例如我们用到的一些后处理特效需要用刀场景深度信息,我们通过把camera的flag设置为depth tex 打开,unity就会在每帧用一个单独的pass绘制深度图,这其实很浪费,我们队全场景的顶点提交了两次,增加了大量drawcall。为了说明解决这个问题的思路,我们从framebuffer说起。
原创
发布博客 2017.06.29 ·
9271 阅读 ·
6 点赞 ·
7 评论

Unity中基于Gpu Instance进行大量物体渲染的实现与分析(一)

在3D渲染中,尤其是现代3D游戏中,我希望能够绘制越来越多的场景物体,这对于设备(尤其是移动端)的性能是个极大的考验,对于新一代的渲染api,都逐渐支持了Gpu Instancing技术,这对于大量相同物体的绘制提供了一个新的方案,在最新的unity5中也提供了对gpu instance 的支持,我尝试在unity5中利用gpu instance 技术来表现大量的植被,并对其性能进行了分析,以探索在3D手游中gpu instance的应用的可行性。
原创
发布博客 2017.06.15 ·
45025 阅读 ·
21 点赞 ·
4 评论

优化shader程序的一些tips

在写shader的时候,其实一些写法对于其执行影响非常大,而且由于gpu和cpu在架构上的不同,代码的优化思想也不一样,最近一直在写几个shader,为了性能问题,查阅了很多资料,把一些tips总结下来。
原创
发布博客 2017.02.17 ·
7011 阅读 ·
6 点赞 ·
0 评论
加载更多