半透明物体渲染顺序

2023-12-13

渲染半透明对象时(使用 glBlend),建议按 z 顺序从后到前对对象进行排序。

From opengl 文档: 在应用程序中使用深度缓冲时,您需要注意渲染图元的顺序。需要首先渲染完全不透明的图元,然后按从后到前的顺序渲染部分不透明的图元。如果不按此顺序渲染图元,则通过部分不透明图元可见的图元可能会完全失去深度测试。

因此,每当我在渲染不透明三角形后渲染半透明对象时,如果我相对于“视图方向”从后到前渲染半透明三角形,这是正确的吗?这里从后到前到底是什么意思?我试图理解,如果我有一个经过 mvp 变换的场景对象,我是否需要专门查看世界坐标​​中的顺序以及相对于相机中心的顺序?

另外,这是否会根据混合类型而变化?


每当渲染半透明三角形时,都必须从后到前绘制它们。这里的从后到前意味着,您必须首先绘制距离屏幕较远的三角形(具有较高的深度值)。

之所以需要这样做,是因为大多数混合方程根据顺序会产生不同的结果。在 OpenGL 中实现的方程通常在从后到前渲染时给出“正确”的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

半透明物体渲染顺序 的相关文章

  • 如何在opengl中使用四元数绕屏幕中心旋转?

    我正在尝试实现轨迹球 轨迹球旋转 但我的中心有问题 回转 无论如何 我希望中心成为屏幕的中心 让我解释一下到目前为止我所做的事情 我创建了一个四元数 旋转轴 向量起点x向量结束 角度 向量起点 向量结束 从该四元数中 我创建了一个旋转矩阵
  • 在 OpenGL 中实例化数百万个对象:提高每秒帧数

    我的最终目标是以 60 fps 渲染 100 万个不同尺寸和颜色的球体 我也希望能够在屏幕上移动相机 我已经修改了代码我正在学习的教程的这一页 http learnopengl com Advanced OpenGL Instancing尝
  • 在 R 中根据时间序列数据制作 3D 曲面

    我有一个大型数据集 我想从中制作 3D 表面 我希望 x 轴为日期 y 轴为时间 24 小时 z 轴 高度 为我的值 我是 R 初学者 所以越简单越好 http www quantmod com examples chartSeries3d
  • 如何在多采样纹理上渲染帧缓冲区对象?

    我目前有一个使用多个通道的渲染引擎 其中图像的各个部分在纹理上渲染 然后使用着色器进行组合 它有效 现在我想激活多重采样 我在这里读到 http www opengl org wiki Framebuffer Object Examples
  • 具有交错缓冲区的 openGL glDrawElements

    到目前为止 我只使用了 glDrawArrays 并希望转向使用索引缓冲区和索引三角形 我正在绘制一个有点复杂的对象 其中包含纹理坐标 法线和顶点坐标 所有这些数据都收集到一个交错的顶点缓冲区中 并使用类似于以下的调用进行绘制 假设所有血清
  • Godot 3d 得到向前矢量

    我想知道是否有办法获取 godot 3d 中空间节点的前向向量 统一起来 这就是transform forward Godot 给了我一个旋转向量 但我不知道如何将其转换为方向向量 戈多版本的transform forward是什么 前进是
  • 如何在OpenGL中像这样绘制连接的带状线

    我想用以下方式绘制一系列连接线 GL LINE STRIP 我尝试过自己编写代码 但没有得到想要的结果 所以我来到这里 帮助我找出我错在哪里 这里我只给出我的draw 函数 glBegin GL LINE STRIP glVertex2f
  • Python 中漂亮的图形和图表 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法在 QGLWidget 中设置所需的 OpenGL 版本

    我正在尝试在 Qt 4 8 2 中使用 QGLWidget 我注意到 QGLWidget 创建的默认上下文不显示 OpenGL 3 1 以上的任何输出 Qt wiki 有一个教程 http qt project org wiki How t
  • 在 R 中绘制 3D 数据

    我有一个 3D 数据集 data data frame x rep c 0 1 0 2 0 3 0 4 0 5 each 5 y rep c 1 2 3 4 5 5 data z runif 25 min data x data y 0 1
  • 使用普通画布/文本输出更新LayeredWindow

    有没有一种方法可以使用画布在表单上绘图 然后使用 updatelayeredwindow 这样表单就不可见 但文本可见 就像只显示文本的半透明表单一样 如果没有 那么有没有办法只用画布 opengl directx 制作某种半透明形式 我想
  • 为什么旋转 3D 点云后顶点法线会翻转?

    我有两个人脸 3D 点云样本 蓝色点云表示目标面 红色点云表示模板 下图显示目标面和模板面在不同方向上对齐 目标面大致沿 x 轴 模板面大致沿 y 轴 Figure 1 The region around the nose is displ
  • 如何创建具有倾斜效果的 NSAffineTransform?

    我对用 Cocoa 绘图还很陌生 并且正在开发一个涉及六边形网格的实验性应用程序 为了简化这个过程 我想倾斜坐标系 使 Y 轴向左旋转 30 度 我在苹果手机上看到了这个可可绘图指南 https developer apple com li
  • 关于Marching Cubes算法的澄清

    关于Marching Cubes 我对其算法和实现有一些疑问 我已经阅读了 Marching Cubes 的 Paul Bourke 优秀文章以及网站上可用的源代码 但是 我在理解以及如何以自己的方式实现算法方面仍然遇到了一些问题 问题如下
  • 新显卡上的 nvoglv32.dll 中的绘制调用崩溃

    几天前 由于一些硬件更改 我设置了计算机并安装了新的 Windows 8 副本 其中 我将显卡从 Radeon HD 7870 更改为 Nvidia GTX 660 再次设置 Visual Studio 11 后 我从 Github 下载了
  • OpenGL 计算着色器调用

    我有一个与新计算着色器相关的问题 我目前正在研究粒子系统 我将所有粒子存储在着色器存储缓冲区中 以便在计算着色器中访问它们 然后我派遣一个一维工作组 define WORK GROUP SIZE 128 shaderManager gt u
  • Java制作一条有向线并使其移动

    我想画一条有向线并让它移动 我能够绘制一条有向线并移动该线 但当我移动该线时箭头会移位 这是我的绘画方法 Line2D Double line new Line2D Double startX startY endX endY g2d dr
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 计算着色器中的 Image2D

    我想使用 image2D 作为顶点的 2D 存储 该顶点将由计算着色器修改 但不起作用 创建纹理 glGenTextures 1 HeightMap glBindTexture GL TEXTURE 2D HeightMap glTexIm
  • 线性/非线性纹理映射扭曲的四边形

    In my 上一个问题 https stackoverflow com questions 10832909 quad strip texturing distortion 已经确定 当对四边形进行纹理化时 面被分解为三角形 并且纹理坐标以

随机推荐

  • Android EditText 提示使用与 EditText 相同的字体

    我已经为 EditText 定义了一种字体 现在 EditText 提示也显示该字体 但我需要为 EditText 提示使用不同的字体 有没有办法实现这一点 Android EditText 提示使用与 EditText 相同的字体 编辑文
  • 如何在 View / PartialView 中正确使用 javascript 命名空间

    我已经使用 MVC 一段时间了 但是自从我正在进行的项目开始顺风顺水以来 越来越多的人加入其中 由于我负责四处寻找一些 最佳实践 所以我特别警惕 JavaScript 可能被误用的情况 并且想找出让我们的视图和部分视图很好地发挥作用的最佳方
  • JQuery DataTables - 显示页面长度选项以及导出按钮

    我正在使用 DataTables 我想在中间的左侧导出按钮上显示页面长度选项 在表格顶部的右侧以及分页上方的表格底部显示搜索 字段 我的问题是 当我添加功能来显示 导出 按钮时 它们根本不显示 如果我使用 dom Bfrtip 则页面长度选
  • 使用 Scala 中现有的列表列表创建 Breeze DenseMatrix

    I ve a List List Int List List 1 2 3 0 0 0 0 0 0 List 0 0 0 1 2 3 0 0 0 List 0 0 0 0 0 0 1 2 3 我想创建一个 3 行 9 列的 Matrix De
  • istio AuthorizationPolicy拒绝规则问题

    我定义了以下第一个策略来拒绝命名空间 foo 中对工作负载 1 的所有请求 除非它们来自工作负载 2 或工作负载 3 尝试从工作负载 2 访问工作负载 1 时 我收到 RBAC 访问被拒绝 但是 当使用如下所示的 ALLOW 策略重写它们时
  • Android:通过POST发送图像

    我一直在寻找解决方案 并遇到了多部分和不同的设置 但我似乎无法让它正常工作 这是我到目前为止所拥有的 编辑 我收到的服务器端错误是 500 我认为这是因为我发送的数据对于一个请求来说太大或者格式不正确 ByteArrayOutputStre
  • 将背景放在线性布局上并占据几乎 3/4 的屏幕

    我已经尝试了其他帖子的各种帮助 将宽度设置为 0dp 等 但似乎没有任何效果 我有两种布局 第一个似乎仍然占主导地位 如果我在文本视图上放置背景颜色 它们就会表现出自己的行为并正确结束 然而 在线性布局上放置一个背景 它几乎占了屏幕的 3
  • 使用 PHP 将 .key 文件从 DER 格式加载到 PEM

    我有一个进行转换的代码 但需要使用本机 PHP 函数来完成它 因为它没有激活对运行 exec 的支持 exec openssl pkcs8 inform DER in archivo key out archivo key pem pass
  • 如何轻松地在 pubspec.yaml 中添加 100 多个手动图像?

    我需要在我的应用程序中添加大量图像 并计划让应用程序保持离线状态 写 assets image1 jpg 让人心痛 我是flutter新手 不知道还有没有其他方法 有没有 要包含资产 flutter assets assets my ico
  • HTTP 缓存控制

    我正在为此苦苦挣扎 在 PHP 中 我为 GET AJAX 调用执行此操作 header Cache Control max age 10000 private 此后浏览器仍然能够发出请求吗 为什么 header Expires gmdat
  • 更改 AlertDialog 中超链接的颜色

    通常情况下 这种行为并不严重 但在 Samsung Galaxy S 上 默认的 AlertDialog 背景为蓝色 并且正常格式的链接 蓝色 消失 不幸的是 下面的代码不会改变链接的颜色 有人有想法吗 public void showCl
  • SQL 按日期分组,但也获取不带记录的日期

    有没有一种简单的方法可以做到GROUP BY DATE timestamp 包括一段时间内的所有日期 无论是否有与该日期相关的任何记录 基本上 我需要生成这样的报告 24 Dec 0 orders 23 Dec 10 orders 22 D
  • 以编程方式设置 CKEditor 对话框的位置

    我正在尝试找到一种方法 以便在打开新对话框时以编程方式设置 CKEditor 对话框的位置 位置部分的实际设置似乎很简单 但我似乎无法弄清楚如何捕获正在创建和显示的新 CKEditor 对话框的事件 我假设这将是类似的事情 CKEDITOR
  • 在 haskell 中按所选字符分割字符串

    我试图在每次选择字符时分割一个字符串 所以如果我收到 1 2 3 4 5 我选择的角色是 结果是一个列表 例如 1 2 3 4 5 我一直在浏览这里已经回答的问题 他们指出我使用splitOn 然而 当我尝试import Data List
  • 仅当用户选择时才使用 Inno Setup 下载文件

    问题 我想知道如何编写脚本来下载第二个 zip 文件 但最初在两个 zip 文件之间进行选择 下载 解压并删除 zip 文件 每个 zip 文件具有不同的名称 但内容与 zip 文件具有不同的名称 每个名称相同 无需重命名 这个问题有点类似
  • 由于内存限制,串行json_decode

    我有一个很大的 json 文件 7 3MB 我尝试对其进行 json decode 但由于内存限制而失败 致命错误 允许的内存大小 134217728 字节耗尽 有没有一种方法可以一次使用一个对象 节点串行解码 json 文件 我想理论上你
  • “no-ansi”选项不存在

    我正在尝试在 Windows 上创建 laravel 项目 但这个问题向我展示并且我尝试更新作曲家 php版本是8 0 6 作曲家版本是2 0 14 laravel 版本是 4 2 5 根据对此的评论Github问题这是最新版本的 Symf
  • 检查所选文件是否与 标记上的接受属性匹配

    我希望防止用户上传服务器会从包含最少 JavaScript 的页面拒绝的文件 最好不要添加任何严重的依赖项 例如纯粹为了解决这一问题的 jQuery 由于我不是针对旧用户 因此我使用浏览器的表单验证系统来检查用户是否选择了有效文件 但它似乎
  • PhoneGap (Cordova.js) 和 JQuery.Ajax 不能一起工作

    我已经使用 Phonegap Jquery 构建了一个针对 Andriod 4 12 的 html 页面 我的业务需求是使用 cordova js 的相机 API 拍照 然后将捕获的图片发布到 ASMX Web 服务 问题 当我添加对 Co
  • 半透明物体渲染顺序

    渲染半透明对象时 使用 glBlend 建议按 z 顺序从后到前对对象进行排序 From opengl 文档 在应用程序中使用深度缓冲时 您需要注意渲染图元的顺序 需要首先渲染完全不透明的图元 然后按从后到前的顺序渲染部分不透明的图元 如果