透明跳脸?

2024-01-18

我一直在开发一个在 Three.js 库之上运行的 WebGL 项目。我正在渲染几个半透明网格,我注意到根据倾斜相机的角度,顶部会出现不同的对象。

为了说明这个问题,我使用三个半透明立方体做了一个快速演示。当您将图像旋转到垂直于屏幕的方向时,最小立方体的后半部分会“跳跃”并且不再可见。不过,应该还是看得见的吧?我尝试调整一些混合方程,但这似乎没有什么区别。

我想知道这是否是 WebGL/3 中的错误,或者我可以修复的问题。任何见解将不胜感激:)


好吧,当他们发明所有这些硬件加速图形业务时,这是他们无法解决的问题,听起来我们将不得不在很长一段时间内处理这个问题。

这里的问题是显卡不会对多边形或对象进行排序。显卡是“哑”的,你告诉它绘制一个对象,它会绘制代表该对象的像素,并且在另一个称为 zbuffer(或深度缓冲区)的不可见“图像”中,将绘制代表该对象的像素但它不是绘制颜色,而是绘制每个像素到相机的距离。之后您绘制的任何其他对象,显卡都会检查每个像素到相机的距离,如果距离较远,则不会绘制它(除非您禁用该检查)。

这大大加快了速度,并为您提供了实体对象之间良好的交叉点。但它在透明度方面表现不佳。假设您有 2 个透明对象,并且希望将 A 绘制在 B 后面。您需要告诉显卡先绘制 A,然后再绘制 B。只要它们不相交,这种方法就可以正常工作。为了绘制两个相交的透明对象,图形必须对所有多边形进行排序,并且由于显卡不这样做,所以你必须这样做。

这是您需要了解并针对您的情况进行专门调整的事情之一。

在 Three.js 中,如果设置material.transparent = true我们将对该对象进行排序,以便它在前面的其他对象之前(更早)绘制。但如果您想将它们相交,我们无法真正帮助您。

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

透明跳脸? 的相关文章

  • 在 Angular 中使用 Vue 组件

    我有一个用 Vue 构建的项目 我想在 Angular 应用程序中重用 Vue 应用程序中的组件 这样我就不必从头开始重建每个组件 我在medium上看到了这个教程 如何在 Angular 应用程序中使用 Vue 2 0 组件 https
  • 禁用内容安全策略

    当我开发网站时 我经常想看看特定功能在网站上的外观如何 所以我会使用 chrome 开发者工具并经常运行一些 javascript 脚本 我经常发现一些脚本由于内容安全策略 CSP 而无法运行的问题 我完全理解该策略是为了防止跨站点脚本攻击
  • chrome 调试器承诺在暂停时不会解析?

    也许我没有正确调试承诺 但基本上 如果您在断点处停止并运行异步代码 它实际上不会完成 直到您恢复执行为止 这是一个问题 调试器允许您快速试验多个 api 方法 但如果您恢复它 您就不能 debugger now type the follo
  • Oo 任何 IDE 中的 javascript 代码补全

    你知道有什么IDE可以自动完成这种代码吗 我这里有一个 javascript 类生成器 function var core bind function method scope if method instanceof Function t
  • 如何使用 selenium 和 Mocha 获取 xPath() 选择的锚标记的文本

    我已经成功选择了 a 标签 我想显示锚标记的文本 但无法这样做 我正在使用 selenium mocha javascript 和 phantomJS 这是我的脚本 详细 var assert require assert var test
  • 如何使用 JavaScript 中的值填充下拉列表?

    我在 Tridion CMS 扩展中的功能区工具栏按钮中添加了一个按钮 单击该按钮后 将显示一个弹出页面 其中包含两个下拉菜单 通过更改第一个下拉控件中的值 我应该填充第二个下拉控件的值 就我而言 我正在使用ASP drop down li
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

    我正在使用 Puppeteer 和 Jest 来运行一些前端测试 我的测试如下 describe Profile Tab Exists and Clickable settings user gt test Assert that you
  • 如何按照编写的顺序迭代 javascript 对象属性

    我发现了代码中的一个错误 我希望通过最少的重构工作来解决该错误 此错误发生在 Chrome 和 Opera 浏览器中 问题 var obj 23 AA 12 BB iterating through obj s properties for
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • 是否有任何非轮询方式来检测 DOM 元素的大小或位置何时发生变化?

    很长一段时间以来 我一直在寻找一种方法来检测 DOM 元素的大小或位置何时发生变化 这可能是因为窗口调整了大小 或者因为向该元素添加了新的子元素 或者因为在该元素周围添加了新元素 或者因为 CSS 规则已更改 或者因为用户更改了浏览器的字体
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • 当用户单击链接时,如何记录 MixPanel 事件?

    当用户单击某种类型的链接时 我试图在 MixPanel 中记录一个事件 我正在使用 JQuery 不引人注意地完成此操作 据我所知 我需要添加一个回调函数 以便在记录事件后将用户带到 URL 这是我正在使用的代码 不幸的是
  • JavaScript 代码在不使用 ActiveX 的情况下截取网站屏幕截图

    我有一个用户与之交互的 JavaScript 应用程序 我需要保存当前界面的外观 裁剪出我需要的部分 或者通过指定div只拍摄我需要的部分 然后发送回服务器 显然任何外部服务都无法做到这一点 我需要一个 JavaScript 或Flash
  • 如何将函数内的捕获错误传递给父级

    我有这几行代码示例 想知道下面的逻辑到底如何 try var response child console log why here catch err console log should show this err function c
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件

随机推荐

  • 如何判断一个节点是在内存中还是在 dom 中?

    在将节点附加到主页的 DOM 之前 我对节点进行了大量工作 我需要根据给定节点是否包含在主文档中来执行一些工作 我目前的方法是通过以下方式联系父母 if this el closest body length gt 0 有没有更合适的方法来
  • 类型错误:firebase.auth(...).onAuthStateChanged 不是函数

    我正在尝试使用 onAuthStateChanged 触发器 但在使用 firebase 部署 时收到 不是函数 执行时 firebase deploy 我收到以下错误 Error Error occurred while parsing
  • 如何使用 PHP/IIS 读取 Windows 登录用户名

    我正在运行一个网络 这里我有一个域控制器 DC 我刚刚在上面安装了 IIS6 PHP 和 Mysql 一切都很好 现在我想在这个本地网站上启动一个脚本 第一个问题是我想检测哪个网络用户 活动目录用户 使用PHP登录 我的意思是 当用户登录到
  • Git Flow 流程发送用于测试的功能,仅将特定功能部署到上线

    我们正在努力解决 Git Flow 流程 并将功能部署到我们的测试和实时环境 我们希望所有已准备好测试的功能都可以combined并部署到测试环境 我们只想部署具体特征到现场环境 我们使用 Git Flow 的方式存在的问题 开发人员 A
  • 如何在 JavaScript 中运行对象的 onEvent 方法?

    我刚刚开始使用 javascript 但我遗漏了一些我所知道的重要内容 我希望你能帮助我填补这个空白 因此 我尝试运行的脚本应该计算文本字段中的字符数 并更新一个段落以告诉用户他们输入了多少个字符 我有一个名为 charCounter 的对
  • R Plotly 叠加条形图

    简而言之问题 使用R和Plotly包 我可以创建一个覆盖条形图 其中使用 x 轴上的相同位置显示 2 个系列吗 经过相当多的谷歌搜索后 我找不到答案 例如这个可视化 使用 Plotly 和 R 创建分组 非重叠 堆叠条形图的代码 month
  • Horizo​​ntal Pod Autoscaler 中 API 版本 v2beta1 和 v2beta2 之间的区别?

    Kubernetes Horizo ntal Pod Autoscaler 演练https kubernetes io docs tasks run application horizo ntal pod autoscale walkthr
  • LINQ to SQL - 在保存之前格式化字符串?

    我正在尝试将现有 非 LINQ to SQL 类转换为 LINQ to SQL 实体类 该实体类具有现有 db 列 属性 例如 public string MyString get return myString set myString
  • 如何选择每个卷积层的滤波器数量? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 构建卷积神经网络时 如何确定每个卷积层使用的滤波器数量 我知道关于过滤器的数量没有硬性规定 但是根据您的经验 您读过的论文等 是否对所
  • 为什么 EAX 中的高 16 位不能通过名称访问(如 AX、AH 和 AL)? [复制]

    这个问题在这里已经有答案了 为什么没有一个特定的寄存器来访问寄存器的其他部分 16 32 Like ah or al访问8位部分ax登记 我们的想法是将寄存器扩展到 32 位 而不是创建具有两倍数量的 16 或 8 位寄存器的机器 因为这些
  • 动态设置ContentProvider的权限

    也许标题有点误导 我的问题是我有一个 Android 库项目 该项目在两个标准 Android 项目之间共享 一个用于应用程序的免费版本 另一个用于付费版本 该库当前拥有 ContentProvider 的代码 包括一个合约类 其中包含多个
  • 有没有办法从对象中删除未知事件侦听器?

    我想要一个可重用的按钮 可以为由外部源确定的许多不同回调之一注册 当设置新的回调时 我想删除旧的 我还希望能够随时从外部清除回调 public function registerButtonCallback function Functio
  • luceneMatchVersion“LUCENE_36”无效

    我正在尝试将 Solr 3 6 2 集成到我的项目中 我使用 Maven 和 Tomcat 来运行这些东西 当我使用 HttpSolrServer 时一切都很好 但是当我更改为 EmbeddedSolrServer 时 它会出现这样的错误
  • file:/// 到 http:// 通过 IFrame 进行通信

    也许你们中的一些人可能遇到了我遇到的同样的问题 假设您的计算机上有一个文件 file c test html 该文件中有一个 IFrame 您需要指示 IFrame 内容是否已加载 基本上 我们这里有 1 无法从 file 访问位置 hre
  • A:边缘焦点解决方法

    我目前正在使用伪选择器 focus within in chrome 但是根据caniuse com https caniuse com feat css focus within它在 Edge 和 IE 中不可用 我找到了一个巧妙的解决方
  • 亚马逊 DynamoDB 和 AngularJS

    因此 我创建了一个 AWS dynamoDB 表 数据库 并准备使用 AngularJS 获取该数据 我如何使用 AngularJS 做到这一点 我需要在亚马逊设置其他服务吗 或者我可以直接访问我的数据库吗 我无法直接找到与 DynamoD
  • SpringBoot 2.0.2.RELEASE 中的 BCryptPasswordEncoder 定义

    我有一个基本的 Spring Boot 应用程序 使用 Spring Initializr JPA 嵌入式 Tomcat Thymeleaf 模板引擎 并打包为可执行 JAR 文件 我定义了这个配置文件 Configuration Enab
  • 使用 glDrawArrays 绘制交错的 VBO

    我目前正在使用 glDrawElements 使用多个 VBO 顶点 颜色 纹理和索引 进行渲染 我发现很少有顶点是共享的 所以我想切换到 glDrawArrays 和单个交错的 VBO 我一直无法找到一个清晰的例子 1 创建一个交错的 V
  • 如何以编程方式确定该类是案例类还是简单类?

    如何以编程方式确定给定的类是案例类还是简单类 使用新的 Scala 反射 API scala gt class B v Int defined class B scala gt case class A v Int defined clas
  • 透明跳脸?

    我一直在开发一个在 Three js 库之上运行的 WebGL 项目 我正在渲染几个半透明网格 我注意到根据倾斜相机的角度 顶部会出现不同的对象 为了说明这个问题 我使用三个半透明立方体做了一个快速演示 当您将图像旋转到垂直于屏幕的方向时