@author:白袍小道

 
 

引言

本文只在对Unreal渲染模块做一些详细的理解,务求能分析出个大概。

其中框架的思想和实现的过程,是非常值得学习和推敲一二的。

涉及资源系统,材质系统,场景系统,渲染系统

 
 

通常渲染模块组成:

  • 场景的描述
    • FScene
    • FPrimitiveSceneProxy
    • FPrimitiveSceneInfo
    • FMaterial
    • FMaterialResoruce
    • FMaterialRenderProxy

     
     

  • 场景遍历和拣选
    • 分类处理(得到静态列表,动态列表
    • 可见性搞定

 
 

  • 渲染的执行
    • 一个是源码,一个RenderDOC,配合DX文档梳理
    • 多个Pass阶段

     
     

    渲染模块层次划分:

  • 核心代码模块 
    • RenderCore
    • Renderer

       
       

  • RHI 抽象层 
    • RHI(Render Hardware Interface)
    • D3D分层分装

       
       

  • RHI 实现层,API封装: 
    • EmptyRHI
    • Windows 上 D3D11RHI
    • Metal、VulkanRHI、OpenGLdRV

 
 

--------------------------------------------------------------------------------------------------------------------------------------------------

乱入说明

--------------------------------------------------------------------------------------------------------------------------------------------------

基本图:包含了引擎到渲染模块涉及到的类,层次。

1、UnrealEngine、UEditorEngine, EngineLoop

2、UGameViewoirtClient为一个入口点,接着进入到RenderModule

3、渲染线程

【可以先查阅Core下的Thread,异步等处理方法和封装,然后再到渲染。基本就记得提交渲染命令,然后巴拉巴拉,然后就到RenderFam,,,,,.这里作为随笔,后面正式的分类,和说明会放在渲染模块中】

 
 

渲染部分

 
 

 
 

 
 

渲染实例化部分

 
 

接入到渲染中间操作部分

 
 

 
 

 
 

Unreal接入底层操作部分

Unreal RHI模块,对应平台的渲染模块

DX渲染管线

 
 

 
 

 
 

(原)Unreal 渲染模块引言Temp的更多相关文章

  1. (原)Unreal 渲染模块 渲染流程

    @author:白袍小道 浏览分享随缘,评论不喷亦可.     扯淡部分: 在temp中,乱七八糟的说了下大致的UE过程.下面我们还是稍微别那么任性,一步步来吧.     UE渲染模块牵扯到场景遍历. ...

  2. (原)Unreal渲染模块 管线 - 着色器(1)

    @author: 白袍小道 转载悄悄说明下 随缘查看,施主开心就好 说明: 本篇继续Unreal搬山部分的渲染模块的Shader部分, 主要牵扯模块RenderCore, ShaderCore, RH ...

  3. (原)Unreal渲染模块 管线 - 程序和场景查询

    @author: 白袍小道 查看随意,转载随缘     第一部分: 这里主要关心加速算法,和该阶段相关的UE模块的结构和组件的处理. What-HOW-Why-HOW-What(嘿嘿,老规矩) 1.渲 ...

  4. (原)Unreal渲染模块 源码和实例分析说明

    @author:白袍小道 说明 1.由于小道就三境武夫而已,而UE渲染部分不仅管理挺大,而且牵扯技术和内容驳杂,所以才有这篇梳理. 2.尽量会按书籍和资料,源码,小模块的调试和搬山(就是敲键盘)..等 ...

  5. (原) Unreal搬山-引言(图多慎)

    @author:白袍小道 扯淡:(图多) 何为搬山,这里借了剑来少年郎一句.(若有同道中人,甚是开心,开心的很) 江湖岂能没前辈) (江湖很大,足够你浪) (刺客信条 \荒野 \神秘海域 \死亡空间 ...

  6. (整)Unreal渲染模块 框总览

    @author: 黑袍小道 随缘查看     说明 由于搬山的渲染这部分担心自己理解错误,故而搬移官方下,后面整个完成再反过来更新 (这当且仅当做Unreal的帮助文档).     图形编程 模块 渲 ...

  7. (原)Unreal Shader模块(一): 着色创建

    一.着色加载 这里说的Shader是编译后的文件或内存     源码说明 --------------------------------------------------------------- ...

  8. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  9. DRF框架(一)——restful接口规范、基于规范下使用原生django接口查询和增加、原生Django CBV请求生命周期源码分析、drf请求生命周期源码分析、请求模块request、渲染模块render

    DRF框架    全称:django-rest framework 知识点 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码 - 基于restful规范下的CBV接口 3.请求组件 ...

随机推荐

  1. CentOS6.5手动升级gcc4.8.2

    一.简易安装 操作环境 CentOS6.5 64bit,原版本4.4.7,不能支持C++11的特性~,希望升级到4.8.2 不能通过yum的方法升级,需要自己手动下载安装包并编译 本文记录了在Cent ...

  2. ROS机器人程序设计

      在<ROS机器人程序设计>中,在第二章创建节点时给出一个接收和发送的例子,但是按照书中步骤编译时,遇到按个三个问题,现在罗列出来解决方案供参考. 建议在工作空间直接输入 catkin_ ...

  3. C# 使用布尔操作符

    布尔操作符(Boolean operator)是求值结果要么为true,要么为false的一种操作符.C#提供了几个非常有用的布尔操作符,其中最简单的是NOT(求反)操作符,它使用感叹号(!)来表示. ...

  4. 开源项目托管github步骤

    一.在github新建项目,复制到本地更改之后命令提交. 1.进入github主页新建项目:https://github.com/ccyinghua 2.复制项目地址 3.打开git Bash 命令行 ...

  5. io与Nio的区别及实用场景

    https://blog.csdn.net/wodeyuer125/article/details/39475207

  6. iOS MapKit地图

    地图框架:#import <MapKit/MapKit.h> 基本属性和方法: 属性: 地图类视图:MKMapView 地图类型:MKMapType mapType 地图旋转:rotate ...

  7. Spring Boot Common application properties(转载)

    转自官方文档:http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.h ...

  8. Java自定义异常信息

    通常在开发过程中,会遇到很多异常,对于一些知道异常的原因,这时候想要返回给浏览器,就需要自定义系统的异常 1.Spring  注入异常处理类 <bean id ="commonExce ...

  9. ethereum(以太坊)(十二)--应用(一)__集资(构造函数/映射)

    pragma solidity ^0.4.4; contract funder{ //0xca35b7d915458ef540ade6068dfe2f44e8fa733c //0x14723a09ac ...

  10. 关于PHPExcel 基础使用方法

    $dir=dirname(__FILE__);//找到当前脚本所在路径require_once $dir.'/PHPExcel/PHPExcel.php';$objPHPExcel=new PHPEx ...