【Unity3D】3D渲染流水线总结

3D渲染流水线:
CPU阶段(应用阶段):
1、加载数据:硬盘->内存->显存
    场景数据从硬盘HDD加载到内存RAM,网格和纹理等数据会再次加载到显存VRAM,显卡对显存访问速度更快。
2、设置渲染状态
    渲染状态:材质、纹理、Shader等
3、调用Draw Call
    CPU调用渲染命令Draw Call通知GPU进行渲染。

GPU会根据渲染状态和顶点数据进行计算,最终输出到屏幕显示出像素点。

几何阶段:
1、顶点着色器:能够对网格的单个订单进行操作,必须实现将顶点坐标从模型空间转换到齐次裁剪空间。
   后续交由Unity将齐次裁剪空间由硬件做透视除法,得到归一化的设备坐标NDC [-1,1]
2、曲面细分着色器:细分图元。
3、几何着色器:执行逐图元操作,可产生更多图元。
4、裁剪:剔除不在摄像机视椎体内的顶点和三角图元面片。
5、屏幕映射:将每个图元的坐标转换到屏幕空间。([-1,1]+2)/2转[0,1] 再乘以屏幕分辨率

光栅化阶段:
三角形顶点插值运算边界坐标点;
    三角形设置:使用几何阶段输出的三角形顶点屏幕坐标进行插值运算得出三角边界坐标点。
扫描屏幕像素判断位于三角网格内就生成片元,
    (扫描变换)三角形遍历:检查每个像素是否被三角网格覆盖,如果被覆盖就会生成一个片元。
片元着色器:
    通过片元的纹理坐标对纹理进行采样得到颜色值,可以对这个颜色值进行修改输出。
逐片元操作(输出合并阶段)
    ①模板测试、深度测试,决定每个片元是否可见,通过测试才可见。
    ②通过测试的片元颜色值和颜色缓冲区的颜色进行合并(混合),再放回颜色缓冲区。
        混合操作默认是 Blend One Zero 直接覆盖颜色缓冲区的,透明是Blend SrcAlpha OneMinusSrcAlpha

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/65920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

写作词汇积累:尽善尽美、装傻充愣、攀谈、训示

尽善尽美 1、基本介绍 【尽善尽美】是指极其完善,极其美好,形容事物完美到没有一点缺点。 2、实例实操 1. 他的表演【尽善尽美】,赢得了观众们的热烈掌声。2. 这幅画在色彩和构图上都达到了【尽善尽美】的境界。3. 她对工作的态度非常认真…

开源的Vue低代码表单设计器 form-create-designer v3.2.9 版本发布,新增10多种功能

form-create-designer 是一款开源的低代码表单设计器,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。 项目采…

每日一题 373. 查找和最小的 K 对数字

373. 查找和最小的 K 对数字 两种解法 class Solution { public:vector<vector<int>> kSmallestPairs(vector<int>& nums1, vector<int>& nums2, int k) {auto cmp [&](const vector<int> &a,const vector<int> &b…

Qt之简易音视频播放器设计(十五)

Qt开发 系列文章 - MediaPlayer&#xff08;十五&#xff09; 目录 前言 一、QMediaPlayer 二、实现方式 1.添加multimedia 2.创建类vedioplayer 3.UI设计 4.用户使用 5.效果演示 总结 前言 利用Qt进行音视频播放器设计&#xff0c;首先比较方便使用的是Qt自带的音视…

OpenCV-Python实战(13)——图像轮廓

一、找轮廓 cv2.findContours() contours,hierarchy cv2.findContours(image*,mode*,method*) contours&#xff1a;找到的所有轮廓数组&#xff0c;数组内的元素为轮廓像素点坐标。 hierarchy&#xff1a;轮廓间的层次关系。 image&#xff1a;二值图像&#xff08;cv2.t…

UVM:testbench architecture

uvm介绍 验证计划 验证平台 uvm phase uvm 仿真实例 uvm消息机制 父类和子类 uvm elements uvm component uvm message Uvm_info中小于verbosity数值的信息打印出来。

框架(Mybatis配置日志)

mybatis配置日志输出 先导入日志依赖 <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency> 编写log4j.properties配置文件 # Root logger option log4j.rootLogge…

简单的生产数据库重连策略优化

简单的druid生产数据库重连策略优化 1. 需求 我们生产环境有一次在大量请求拥堵后&#xff0c;好多数据库操作都超时了&#xff0c;在此之后数据库的连接池不能正常的获取数据库连接了&#xff0c;我们确认了数据库服务是没有问题的&#xff0c;那么就是连接池的配置有问题&a…

大模型的prompt的应用二

下面总结一些在工作中比较实用的prompt应用。还可以到以下网站参考更多的prompt AI Prompts - WayToAGI 举个例子&#xff0c;让大模型写一份周报 # 角色:智能周报编写助手 ## 背景: 需要根据产品经理提供的简要周报框架,补充完整的周报内容。 ## 注意事项: 言简意赅,重点突…

期权懂|期权都有哪些存在的风险因素?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 期权都有哪些存在的风险因素&#xff1f; 一、市场价格波动风险 期权的价格受到多种因素的影响&#xff0c;包括标的资产价格、市场利率、波动率等。 这些因素的变化可能导致期…

2025跨年倒计时

<!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>2025年跨年倒计时</title><style>/* 页…

多模态论文笔记——Coca

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍多模态模型Coca&#xff0c;在DALLE 3中使用其作为captioner基准模型的原因和优势。 文章目录 ALBEF论文模型结构组成训练目标 CoCa​论文模型结构CoCa…

大型模型推理加速入门

一 推理加速基础 1. 了解基本概念与术语 首先需要了解关于大模型的一些基本的历史发展&#xff0c;概念和术语&#xff0c;不需要全部看懂&#xff0c;只需要掌握大概情况&#xff0c;可以通过下面这篇文章进行&#xff1a; 大模型入门基本概念&#xff0c;术语 2. 了解Tra…

python实现自动登录12306抢票 -- selenium

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 python实现自动登录12306抢票 -- selenium 前言其实网上也出现了很多12306的代码&#xff0c;但是都不是最新的&#xff0c;我也是从网上找别人的帖子&#xff0c;看B站视频&…

edeg插件/扩展推荐:助力生活工作

WeTab 此插件在我看来有2个作用 1.改变edeg的主页布局和样式,使其更加精简,无广告 2.提供付费webtab Ai(底层是chatGpt) 沉浸式翻译 此插件可翻译网页的内容 假设我们浏览github 翻译前 翻译后 Better Ruler 可以对网页的距离进行测量 适合写前端的小伙伴 用法示例:

正则表达式 - 使用总结

正则表达式 - 使用总结 正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许我们通过特定的模式(pattern)来搜索、匹配和操作字符串。在编程、数据分析和文本处理等领域,正则表达式发挥着非常重要的作用。本文将总结正则表达式的基本概念、使用方…

doris:基于 Arrow Flight SQL 的高速数据传输链路

Doris 基于 Arrow Flight SQL 协议实现了高速数据链路&#xff0c;支持多种语言使用 SQL 从 Doris 高速读取大批量数据。 用途​ 从 Doris 加载大批量数据到其他组件&#xff0c;如 Python/Java/Spark/Flink&#xff0c;可以使用基于 Arrow Flight SQL 的 ADBC/JDBC 替代过去…

数据挖掘——关联规则挖掘

数据挖掘——关联数据挖掘 关联数据挖掘关联规则关联规则挖掘问题&#xff1a;具体挖掘过程Apriori 产生关联规则 关联数据挖掘 关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系&#xff0c;所发现的模式通常用关联规则或频繁项集的形式表示。 关联规则反映一个事物与…

DVWA靶场Brute Force (暴力破解) 漏洞low(低),medium(中等),high(高),impossible(不可能的)所有级别通关教程

目录 暴力破解low方法1方法2 mediumhighimpossible 暴力破解 暴力破解是一种尝试通过穷尽所有可能的选项来获取密码、密钥或其他安全凭证的攻击方法。它是一种简单但通常无效率的破解技术&#xff0c;适用于密码强度较弱的环境或当攻击者没有其他信息可供利用时。暴力破解的基…

[react] 纯组件优化子

有组件如下,上面变化秒数, 下面是大量计算的子组件,上面每一秒钟变化一次,这时候子组件会不断重新渲染, 浪费资源 父组件如下 import React, { memo, useEffect, useMemo, useState } from react; import type { ReactNode, FC } from react; import HugeCount from ./Te; int…