透明着色器允许下面的对象显示在上面

2024-01-02

在我的场景中,笑脸(带有 png 图像的四边形)放置在 Y:0 处,点(带有平铺 3X3 的四边形)放置在 Y:-0.25 处。 我需要用于笑脸的着色器是透明漫反射,因为我使用的是圆形 png 图像。

但我在下面使用的点显示在笑脸上方。使用任何其他着色器(如漫反射)可以解决该问题,但笑脸变成了正方形。

Screenshot: enter image description here

如果您需要更多说明,请随时询问。

编辑: 我已附加检查器面板中笑脸和点的着色器详细信息。 关联:http://postimg.org/image/cvws1os7d/ http://postimg.org/image/cvws1os7d/

编辑2: 我发现问题应该出在主相机上,尤其是距离和“视野”上。 我需要使用“透视”作为投影类型,使用 140 作为视野。

如果我将投影类型更改为正交,问题就完全解决了。

下面的屏幕截图显示了距离和视野如何控制笑脸上的点的外观。

截图1: Y位置:8.48 视野:30 关联:http://postimg.org/image/s31tttrkp/ http://postimg.org/image/s31tttrkp/

截图2: Y 轴位置:9.7 视野:30 关联:http://postimg.org/image/f71sq0y4b/ http://postimg.org/image/f71sq0y4b/

截图3: Y 轴位置:11.41 视野:30 关联:http://postimg.org/image/3uk4az3d3/ http://postimg.org/image/3uk4az3d3/

截图4: Y位置:1 视场角:140 关联:http://postimg.org/image/bul9zwg7z/ http://postimg.org/image/bul9zwg7z/

这可以作为线索吗?


仅提供一些有关透明度通常如何实现的信息(不仅由 Unity 实现)。

同时,不透明对象可以按任何顺序绘制(即使按照从前到后的顺序对它们进行排序最终可以依靠早期的 z 剔除来提高一些 GPU 性能)。可以使用存储在中的深度值来推断哪些像素是可见的z-buffer http://en.wikipedia.org/wiki/Z-buffering.

您不能依赖 z 缓冲区来实现透明度。 对于渲染半透明对象,典型的方法是在所有不透明对象之后绘制它们,并按从后到前的顺序对它们进行排序(首先绘制距离相机较远的透明对象)。

现在的问题是:如何对对象进行排序?使用透视相机和通用形状的网格,解决方案并不明显 https://www.opengl.org/wiki/Transparency_Sorting.

对于平行于正交相机视图平面的四边形网格,z 顺序是隐式正确的(这就是为什么它总是适合您)。 您还可以注意到相机位置影响绘图顺序,因为对于透视相机,顺序是根据对象位置和相机之间的距离计算的。

那么你能做什么Unity3d,在您的特定用例场景中? 几个技巧:

  • 显式设置渲染队列 http://docs.unity3d.com/ScriptReference/Material-renderQueue.html材料的
  • 显式设置渲染顺序 http://docs.unity3d.com/Manual/SL-SubshaderTags.html在着色器内部(与上面类似,但等于具有相同着色器的每个对象)
  • 使用伪造深度Offset http://docs.unity3d.com/Manual/SL-CullAndDepth.html进入着色器(对你的情况来说没那么有用,但值得了解)

希望这可以帮助


EDIT

我不知道的是,相机透明度排序模式 http://docs.unity3d.com/ScriptReference/Camera-transparencySortMode.html似乎可以定制。所以这是另一种解决方案,如果您想使用透视相机,这可能是最适合您的情况的解决方案。

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

透明着色器允许下面的对象显示在上面 的相关文章

  • Unity3d 中的多线程脚本调用

    我试图在Unity3d中实现多线程脚本执行 但是Unity库似乎没有提供方法 我们必须使用Mono提供的System Threading 但他们提到 Unity Scripting 不是线程安全的 我可以使用 System threadin
  • 无法添加脚本,因为它是编辑器脚本错误

    如何在 Unity 中解决此问题 无法添加脚本 因为它是编辑器脚本 我想将此脚本从后处理中放入 Unity 但由于这个问题我不能 Unity 有特殊的文件夹名称 其中之一是 编辑 Editor 文件夹用于放置在编辑器中执行的编辑器脚本 它不
  • 无法使用 Unity 函数在 Visual Studio Code 中获得完整的 Intellisense

    好吧 我知道这个问题已经被问过并回答过很多次了 但我花了大约 3 天的时间试图解决这个问题 但到目前为止我所做的一切都没有奏效 我基本上在 Visual Studio Code 中有部分智能感知 也就是说 它似乎只识别 Unity 类和变量
  • Android:透明活动问题

    最近 在我们的一款生产应用程序上 透明活动已停止工作 我的意思是它变成了黑色背景而不是透明背景 当我将活动的背景颜色设置为纯色 即红色 绿色等 时 它的应用不会出现问题 该问题可能是由于迁移到 AndroidX 引起的 但我没有这方面的证据
  • 使用 Unity 在 C# 中发送 http 请求

    如何使用 Unity 在 C 中发送 HTTP GET 和 POST 请求 我想要的是 在post请求中发送json数据 我使用Unity序列化器 所以不需要 新的 我只想在发布数据中传递一个字符串并且能够 将 ContentType 设置
  • Unity3D - 将 UI 对象移动到屏幕中心,同时保持其父子关系

    我有一个 UI 图像 它的父级是 RectTransform 容器 该容器的父级是 UI 面板 而 UI 面板的父级是 Canvas 我希望能够将此 UI 图像移动到屏幕中心 即画布 同时保留父级层次结构 我的目标是将 UI 图像从中心动画
  • Unity 2018.3 android dex合并问题

    在您决定将这篇文章视为 重复 而不阅读它之前 请了解我已经查看了大量与此主题相关的帖子 但我找不到适合我的实例的解决方案 包括 StackOverflow 建议的所有解决方案 大多数帖子都是针对 Android Studio 而不是 Uni
  • 帧缓冲区和在 opengl 中使用着色器

    我对帧缓冲区有点困惑 我想要做的是使用附加了多个纹理的帧缓冲区 填充每个纹理 然后使用着色器组合 混合 所有纹理以创建新的输出 听起来很容易 是的 我也是这么想的 但我不明白 如何将当前绑定的纹理传递给着色器 您需要的是将纹理放入特定的槽中
  • (Unity 中的 Firebase 数据库)在 Android 构建期间在 Temp 中缺少classes.jar

    I am using Firebase Database in my Unity project but I am having some issues when building the project for android It ru
  • 如何在Unity Inspector中创建多维数组?

    如何在 Unity Inspector 中创建枚举多维数组并使其可序列化 以便我可以从不同的脚本调用它 public enum colors red blue green yellow cyan white purple public in
  • Android OptionsMenu问题,背景始终透明

    我的选项菜单总是不显示背景 背景是透明的 有谁知道如何摆脱这个 我的失败起源活动是从另一个自定义活动扩展的 我在 eclipse 上有这个项目 选项菜单工作正常 但自从我迁移到 AndroidStudio 后 选项菜单始终是透明的 我尝试更
  • 丢弃对 OpenGL 中的程序性能有影响吗?

    我正在读书this http code google com p gdc2011 android opengl wiki TalkTranscript文章 作者写道 以下是如何通过两个简单的步骤在每个平台上编写高性能应用程序 遵循最佳实践
  • IBM Watson 对话服务错误:无法从“方法组”转换为“conversation.onMessage”

    我正在尝试运行 IBM Watson会话服务团结和下面是代码片段 https github com watson developer cloud unity sdk conversation private Conversation m C
  • 空合并运算符分配给 self

    我目前在 Unity 中设置了两个脚本来处理一些 UI 音频 一个是管理器 另一个是为特定 UI 元素播放声音 我所拥有的简化版本是这样的 public class AudioUIManager MonoBehaviour Only one
  • 金属中的 SCN 着色器修改器 - 将统一传递给着色器

    我正在尝试将着色器修改器与 Metal 一起使用 我无法弄清楚如何声明制服 到目前为止我的片段修饰符是 color changes pragma arguments float4x4 u color transformation pragm
  • 我可以在 WinForms 中的 PictureBox 上创建透明背景吗?

    我想做一个背景PictureBox控制透明 在里面PictureBox 矩形 我放置了一个图标 圆形 我想让图标透明 以便图标下方的其他部分可见 我尝试过设置PictureBox BackColor属性设置为 透明 但不起作用 我还尝试在运
  • 使用 Unity3D 解决 PnP

    我有一个真实 物理的棍子 上面连接有红外摄像头和一些红外 LED 它们形成了我正在使用的模式 以便使虚拟棍子以与物理棍子相同的方式移动 为此 我在 Python 中使用 OpenCV 并将由solvePnP 计算的旋转和平移向量发送到 Un
  • X 轴和 Z 轴上的 Quaternion.Slerp,无 Y 轴

    I am trying to rotate the Player about X Y and Z axis The Y axis should not move from last angle Example if I rotate 45
  • Facebook Unity Sdk v5.0.3 尝试登录时在横向模式下崩溃 - Android

    当我在横向模式下单击登录按钮时 游戏崩溃 如果我使用纵向模式 一切都会正常工作 当我崩溃时 我从 bugsense 得到了以下堆栈跟踪 java lang RuntimeException Unable to start activity
  • 有没有办法用 Tkinter 创建透明窗口?

    最终 我尝试使用 Tkinter 模块用 Python 创建 奇怪形状的窗口 但现在我会满足于能够使背景透明 同时保持子部件完全可见 我知道这是使用 wxPython 和其他一些模块完成的 但我想了解 Tkinter 的限制 Tkinter

随机推荐

  • 样式化组件 - 如何防止将 prop 传递给扩展组件?

    我正在延长Textarea而且我要completed可以通过以下方式访问StyledItemTextarea但不是Textarea 我怎样才能实现这个目标 import Textarea from react textarea autosi
  • 在 Cocos2d 和 Box2d 中获取物体上的接触点

    我很new对于 Cocos2d 和 Box2d 我 一直在关注教程 http www raywenderlich com 和 一般是黑客攻击 不过 我有一个 我无法解决的问题 我创建了 2 个主体和固定装置 在 Box2d 世界中 并创建了
  • 具有多个条件的 if 语句[重复]

    这个问题在这里已经有答案了 由于我缺乏 Bash 知识 我带着一个小问题来找你 我有一个包含 41 个文件夹的 Apps 目录 每个文件夹中都有一个css包含glue1 css 文件的子目录 我的目标是通过 bash 循环删除该 css 文
  • AngularJS在容器中无限滚动

    我正在尝试使用AngularJS无限滚动 http binarymuse github io ngInfiniteScroll 它似乎仅在滚动相对于浏览器窗口时才起作用 我想在内部 DIV 中进行无限滚动 即我有一个带有通用包装器的页面和一
  • 启动画面图标未完全显示

    我使用新的闪屏 API 为 API 级别 23 以下的所有 Android 版本添加均匀的闪屏 启动图标有什么要求吗 目前我尝试使用 svg 我认为它会在不同的屏幕上自动调整大小 有没有人也经历过这种情况并有解决方法或知道这些 隐藏的 要求
  • 自定义表单身份验证+MVC3+AuthorizeAttribute

    我本质上做的是this https stackoverflow com a 2342196 69735 但是 每当我使用内置的 AuthorizeAttribute 时 MVC 框架 我猜 永远不会查看我的主体来确定用户是否具有正确的角色
  • 从evaluateJavaScript函数的完成处理程序返回HTML字符串

    我知道我不是第一个问这个问题的人 但我无法解决这个问题 我正在尝试使用以下方法从 HTML 中获取一段字符串evaluateJavaScript在带有 Swift 3 的 Xcode 中 这段文本被称为value在完成处理程序中 所以我这样
  • CKeditor Html 5
    标签问题

    我使用 CKeditor 版本 4 我面临与 HTML 5 标签相关的问题 输入HTML代码 div class col md 4 col sm 4 div class item cont a href contents view home
  • Ruby on Rails 私人链接共享:Google 文档风格

    让用户能够共享内容的最佳方式是什么 私人链接使任何点击它的人都可以查看具有隐私限制的特定页面 文档 项目 就我而言 用户创建的事件仅限于数据库中的某些关系组 即 朋友 朋友的朋友等 我有一个 在 过滤器之前在事件控制器中检查当前登录用户的资
  • 在 Android 应用程序中使用 smack 进行文件传输。

    这个错误出现在日志中 from kutbi1 360degree Smack to akash 360degree Smack type error id hK1L6 5 gt
  • 具有多个子字段的 Drupal 自定义 CCK 字段

    有没有办法创建一个可以有多个值的复合字段 每个值都有另一组复合值 例如 我们希望最后有这样的结构 Group 1 unlimited number of groups 子字段 每组无限个子字段 子字段 Group 2 子字段 子字段 对于定
  • 如何防止 WordPress 页面被用户删除

    一些 WordPress 插件会创建页面或帖子 插件的正常功能依赖于该页面或帖子的存在 例如 管理电子邮件列表的插件可能依赖于取消订阅页面 用户可能会有意或无意地删除该页面 插件如何防止其页面被删除 首先 当您创建页面时 您可以将其 ID
  • 直接在 Intellij Idea/WebStorm 中运行笑话测试?

    我在用着jest https facebook github io jest 在我的 ReactJS 应用程序中编写测试 到目前为止 要运行我的测试套件 我需要输入 npm test 这是 package npm 中的片段 scripts
  • Python3没有这样的文件或目录

    我正在尝试制作 python3 可执行脚本并从 shell 运行它们 我的系统上安装了 python 3 4 0 所以 我添加了 home spandan python codes 目录到Python路径 因为我计划将我的脚本和模块保留在这
  • AWS CodePipeline 将多个存储库作为单一源进行跟踪

    我正在调查 CodePipeline 是否适用于我们的用例 我们有数百个存储库 全部由 CodeCommit 托管 除了较小的配置之外 所有这些的构建 测试 发布过程都是相同的 我想做的是建立一个管道 用于构建 测试 发布在任何这些存储库中
  • R传单。将点数据分组到单元格中以汇总许多数据点

    早上 下午或晚上 我有以下位置数据 调整自 网格单元内采样点的计数 https stackoverflow com questions 56217221 count of sampling points within a grid cell
  • Eclipse Luna CDT:什么是标头变体?

    我很难让 Eclipse Indexer Codan 识别头文件中的某些数据声明 有一个新的偏好索引所有标头变体 http wiki eclipse org CDT User NewIn83 Preferences for header v
  • 使用“功能分支”与重构兼容吗?

    特征分支 是指每个功能都在自己的分支中开发 只有在经过测试并准备好交付后才合并到主线中 这允许产品所有者选择进入给定发货的功能 并在出现更重要的工作时 保留 部分已编写的功能 例如 客户打电话给 MD 投诉 重构 正在改造代码以改进其设计
  • 将应用程序更新到应用程序商店:审核时间以及商店的评分?

    这太令人沮丧了 我已将我们的应用程序上传到应用程序商店 8 天后获得批准 然后我下载了它 发现加速度计卡住了 所以我去了itunes connect 将发布日期更改为未来的发布日期 取消选中世界上所有的商店 它说 已被开发人员删除 这就是我
  • 透明着色器允许下面的对象显示在上面

    在我的场景中 笑脸 带有 png 图像的四边形 放置在 Y 0 处 点 带有平铺 3X3 的四边形 放置在 Y 0 25 处 我需要用于笑脸的着色器是透明漫反射 因为我使用的是圆形 png 图像 但我在下面使用的点显示在笑脸上方 使用任何其