渲染流程笔记

COCOS学习笔记--Cocos引擎渲染流程 最近在研究Cocos引擎的渲染流程,在这里将其整个渲染流程进行一下梳理: 梳理之前我们要知道一些东西,就是我们的Cocos引擎是通过使用OpenGL的一些API来进行渲染绘制的,所以如果我们要彻底理解Cocos引擎的渲染流程并想修改引擎底层渲染的相关内容,熟悉OpenGL是很有必要的。 这里先简单说一下大概流程,Cocos3.x版本的渲染是将所有需要渲染的node先通过各种RenderComm 阅读详情
场景渲染绘制过程中,怎么能够保证效果的同时最小化gpu的工作量,是提高帧率的关键,最基本的做法是裁剪技术,如空间分割,相机距离排序等,偏gpu的如材质排序等,但这些技术间是有冲突的,比如相机距离排序可能就与材质排序,透明与不透明物体渲染冲突,以前的工作中还没有涉及到对整个渲染架构的调整及优化,故这部分虽一直有思考,但并没有完整的去分析如何解决,最近看Game Engine Architecture时看到一个渲染流程,可以较好解决大部分问题,特此记录一下。
先总结下自己想到的一般渲染逻辑中存在的问题:
1、要尽量减少gpu处理的网格,不可见物体的网格是完全没必要提交的gpu的,这部通过裁剪技术偏cpu的裁剪和偏gpu的遮挡查询
2、gpu要尽量减少状态改变,状态改变操作gpu必须等前一状态的工作结束后才能进行,所以频繁的状态切换导致gpu频繁等待,这个问题一般是通过材质排序解决,因为相同材质的物体,渲染状态都是一样的。
3、减少cpu与gpu间的数据交换,主要是贴图,这也是大显存的优势,如果显存不够用的话,就进行数据交换,贴图排序可以减少数据量。
4、像素覆盖,远处物体的像素点会被近处物体遮挡,所以这部分像素点的渲染完全是浪费(特别是有复杂光照计算时,更是浪费gpu计算,也是延迟渲染或光照的优势),通过物体距离相机距离排序可以解决,先绘制离相机近的,再绘制离相机远的,当然这个并不能全部解决,因为物体可能交叠,也可能自覆盖。
5、半透明物体渲染,半透明物体会透过它后面的物体,所以必须由远到近的绘制,这与上一点是冲突的,一般的解决办法是把半透明的物体筛选出来放到最后渲染,同时不透明物体渲染还可以关掉alphablend以提高效率。


那么怎么样的渲染逻辑才能如何能尽可能解决上面问题,Game Engine Architecture给出了一个方法,使用到了gpu z prepass特性,具体做法是:
1、不明物体渲染两遍,第一遍用由近到远的顺序渲染,并关闭pixshader,仅输出z-buffer,这样渲染速度会很快。第二遍按材质排序渲染,由于已经有了z-buffer所以像素覆盖的问题可以避免,pixel shader工作量大大减少,同时材质和远近排序的矛盾也得到解决。
2、渲染半透明物体,由于透明物体必须由远到近渲染,所以无可避免导致,无法材质排序。
笔记01——GPU渲染流程 一、 1、顶点着色器 输入:几何阶段的数据 GPU并行执行指令,并行执行的指令相互不联系。 CPU顺序执行指令,执行过程中可以相互联系。 工作原理:对每一个顶点调用顶点着色器,计算顶点的颜色和进行坐标变换。 可编程控制。 2、几何着色器 输入:点、线、面等图元数据 工作:生成新的图元,逐图元的着色。这一部分着色器是DirectX10引入的特征。利用GPU特性生成新的细节,减轻 阅读详情

相关推荐

Ogre学习笔记(3):Mesh的渲染流程

       首先一个Entity对象必须Attach到一个SceneNode。1.  创建一个SceneNode:SceneManager::getRootSceneNode() (在SceneManager::init时会创建一个RootNode)à SceneNode::createChildSceneNode()àNode::createChild()主要的操作在这个函数中完成,首先调

燕良@游戏开发 8334

Shader入门学习记录②——CPU与GPU之间的通讯

上一章Shader入门学习记录——渲染流程 1.把数据加载到显存中 所有渲染需要的数据都需要从硬盘(Hard Disk Drive,HDD)中加载到系统内存(Random Access Memory ,RAM)中。然后,网格和纹理等数据有被加载到显卡上的存储空间——显存(VRAM)中。这就是因为,显卡对于显存的访问速度更快,而且大多数显卡对于RAM没有直接的访问权利。 需要注意的是,真实渲染中需要加载到显存中的数据往往比上图所显示的情况要复杂许多。例如,顶点的位置信息、法线方向、顶点颜色、纹理坐标等。.

努力的博客 762

React与Vue3渲染流程完整对比笔记

维度ReactVue3核心理念响应式数据驱动更新策略推式:开发者触发更新拉式:自动追踪依赖优化方向运行时调度优化编译时静态优化心智负担较高(需理解闭包、依赖)较低(响应式自动处理)

weixin_43667390的博客 408

H5的渲染流程笔记

作者:JiajiaAz 来源:优快云 原文:https://blog.youkuaiyun.com/qq_32657025/article/details/79569213 浏览器页面渲染流程 浏览器从HTTP服务器获取html文档,到呈现页面给用户,会经过以下几个步骤: 1、解析文档构建DOM树 浏览器的解析内容可以分为三个部分: HTML/XHTML/SVG:解析这三种文件后,会生成DO...

u013617851的博客 2559

癌症免疫治疗预测神器TIDE:从原理到实战(避坑指南)

本文详细解析了癌症免疫治疗预测工具TIDE的核心原理及实战应用。TIDE算法通过模拟肿瘤免疫逃逸的两种核心机制(T细胞功能障碍和排除),为临床决策提供精准预测。文章涵盖数据准备、标准化流程、网页工具操作指南及结果解读,帮助科研人员和临床医生避开常见误区,优化免疫治疗策略。

weixin_29309475的博客 199

用友U8自定义按钮开发:从基础配置到实战业务集成

本文详细介绍了用友U8自定义按钮开发的完整流程,从基础配置到实战业务集成。通过实际案例演示如何在U8系统中添加和替换功能按钮,包括数据库配置、SQL脚本编写和VB组件开发等关键技术点,帮助企业用户实现业务场景的深度定制。

weixin_29698641的博客 256

C4D R26 渲染学习笔记(2):渲染流程介绍

以基础为主,C4D学习的基础是3D建模和3D动画,因为3D建模和动画是在C4D里面进行的,可以先用标准渲染器进行渲染,然后后面再学习其他的GPU渲染器,其中OC渲染器以学习成本低,出效果快,渲染速度高而出名。但是现在使用基本的渲染器效果也很不错了。调整模型/效果器/生成器/作用域参数。设置主光源+环境光+HDR环境贴图。

qq_44695769的博客 3193

别再只调OpenCV参数了!手把手教你用Python bm3d库搞定图像去噪(附完整代码与效果对比)

本文详细介绍了BM3D算法在图像去噪中的高级应用,通过Python bm3d库实现超越OpenCV传统方法的去噪效果。文章包含完整代码示例、参数调优技巧及工程化应用场景,帮助开发者掌握这一被称为'传统方法天花板'的技术,显著提升图像信噪比和细节保留能力。

weixin_28362173的博客 366

图形渲染管线流程笔记

glsl;laya;typescript;shader

Huanzhi_Lin的博客 454

别再傻傻分不清:PX4、Pixhawk、ArduPilot、APM到底啥关系?一张图给你讲明白

本文全面解析开源飞控领域核心概念,厘清PX4、Pixhawk、ArduPilot与APM的定位与关系。通过硬件平台演进史和飞行控制软件对比,帮助开发者理解开源飞控生态,并提供新项目开发建议与特殊需求考量,助力无人机开发中的明智选择。

weixin_32770423的博客 412

metaRTC嵌入式webrtc编译指南

metaRTC编译支持qmake和cmake,qmake使用QT最为方便,新版本新增了cmake支持。 ...

metaRTC的博客 9518

【学习笔记】Web页面渲染的流程

【学习笔记】Web页面渲染的流程

qq_37704442的博客 1060

基-2 16点fft的verilog实现

本文是采用输入8位数据,输出8位数据的16点fft实现,旋转因子采用8位rom存储,分为cos和sin2个rom存储;输入数据以及每一级的输出数据采用8位的ram进行存储,分为实部和虚部进行存储。采用顺序输入,那么输出则为倒序。生成rom,可先在matlab中,计算出cos和sin的值,然后写入coe文件,再由ip核生成,具体过程自行百度,懒得百度的话,可以发我的邮箱来获得具体的程序。因为本文采用...

juniorofMFC的博客 9992

LWRP(URP)学习笔记一渲染流程

导航LightweightRenderPipelineRender方法RenderSingleCamera 方法ForwardRendererForwardRenderer构造方法Setup重载 LightweightRenderPipeline Render方法 protected override void Render(ScriptableRenderContext rend...

nxl76450106的博客 5766

LDRA Testbed软件静态分析_常见问题及处理

通过前面的几篇文章,LDRA Testbed软件静态分析的内容基本讲解完了,本篇文章将针对使用Testbed进行软件静态分析的常见问题进行介绍。 到此为止,LDRA Testbed软件静态分析的内容已经全部讲完,如果有问题,欢迎私信提问(不经常登录,回复可能不及时,见谅)。下一篇文章将开始讲解如何使用Testbed进行单元测试。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 2590

对称式目镜设计实例

对称式目镜设计实例

weixin_72050316的博客 1163

cocosCreator2.3.x渲染流程深入剖析笔记(一)

入口及渲染流RenderFlow 最近终于闲下来了,闲来无事进入cocos论坛发现cocosCreator已经更新到2.3.3版本了(以前一直都使用的cocosCreator2.0.9),尤其是其材质系统的引入使得我们在做渲染效果的时候更加的得心应手,随即就想深入的研究一下其底层的渲染流程到底有什么变化,最近大多数关注游戏逻辑的部分,也算是再重新整理下图形渲染相关的知识。 我们都知道游戏中的一些常...

weixin_43952667的博客 1539

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

cocos2dx-3.17渲染流程学习笔记

图形渲染简介

qq_33811591的博客 772

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

庄懂老师TA学习笔记 - 渲染流程

视频链接 庄懂的技术美术入门课(美术向)-直播录屏-第1课_哔哩哔哩_bilibili 首先我们用一张图来看一下基础的渲染流程 第一步:读取模型的结构 大家都知道,在建模软件中,我们是通过创建一个一个顶点,来完成模型的创建的,我们通过连接这一个一个的顶点,就可以得到一些三角面,我们看一下Blender导出的一个正方体的模型结构 我们可以看到,这个正方体有8行是v开头,也就是他的顶点vertex,后面的三个数字也就是他的坐标,下方的f一共有12个,他指的的三角面fragment,..

Hello优快云666的博客 1383

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

布局渲染流程和原理 学习笔记

手机CPU 处理的任务繁多,出了逻辑计算以外还要做内存管理,显示操作,因此 在实际运算的时候性能会大打折扣,在没有GPU的时代,运算速度根本上今天负责三维游戏要求,即使CPU工作频率超过2GHZ,对他绘制的图形提高也不大,这是GPU设计出来了。 黄色的 Control 为控制器,用于协调控制整个 CPU 的运行,包括取出指令、控制其他模块的运行等; 绿色的 ALU ( Arithmetic...

谢伟光的博客 532

学习UnityShader入门精要笔记1——渲染流程概述

常规将渲染流程分为三个阶段,应用阶段--几何阶段--光栅化阶段。 应用阶段我理解为数据准备阶段,包括位置信息,光照信息等,并设置模型材质、shader等,书中把这些定义为渲染状态。最后应用阶段会输出渲染所需的几何信息即渲染图元,交由几何阶段做渲染绘制处理。 几何阶段我理解就是shader中的vert 和 frag,逐顶点逐片元对渲染图元做处理并将结果丢给第三阶段。 光栅化阶段实现具体绘制,对

silyosin的博客 1902

《浏览器渲染原理及流程》学习笔记

浏览器完整地呈现一张页面在我们眼帘之前,都做了啥工作?或者说,其步骤为何?答案是构建各种树。所谓的树,那就是有兄弟、子孙等节点了。一棵树构造出来,各种元素的先后顺序就都有了。有哪些树呢?这些树:DOM Tree:浏览器将HTML解析成树形的数据结构。CSS Rule Tree:浏览器将CSS解析成树形的数据结构。Render Tree: DOM和CSSOM合并后生成Render Tree。layou

左直拳的马桶_日用桶 974

crysis2 - dx9一帧渲染流程笔记

crysis2 dx9一帧渲染流程笔记 crysis2 dx9一帧渲染流程: 1. TestCooperativeLevel() 2. 设置n-patch细分等级D3DRS_ADAPTIVETESS_Y 3. GPU同步设置,Query9::GetData(), Quer

_Max 920

笔记 从输入 URL 到页面渲染的整个流程

DNS 查询 DNS 缓存 建立 TCP 连接(三次握手)连接复用 发送 HTTP 请求(请求的四部分) 后台处理请求 4.1 监听 80 端口 4.2 路由 4.3 渲染 HTML 模板 4.4 生成响应 发送 HTTP 响应 关闭 TCP 连接(四次挥手) 解析 HTML 下载 CSS(缓存 解析 CSS 下载 JS(缓存 解析 JS 下载图片 解析图片 渲染 DOM 树 渲染样式树 执行 JS ...

ygx_work的博客 232

cocosCreator2.3.x渲染流程深入剖析笔记(三)

camera

weixin_43952667的博客 1332
上一篇: windows中virtualbox开启硬件加速
下一篇: cryengine3中lua脚本模块集成笔记
wt_2k
博客等级 码龄25年 21粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值