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

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(使用前将#替换为@)

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

  • LibGDX - 着色器适用于桌面但不适用于 Android

    我编写了一个简单的程序 可以在 3D 环境中渲染球体 并根据球体周围的四个光源为其着色 当我在桌面上运行该程序时 它工作得很好 但在 Android 设备上 球体只是纯色的 下面是一些图片来说明我正在谈论的内容 gt Desktop gt
  • 使用 OpenGL 着色器进行数学计算 (C++)

    我有一个矩阵 例如 100x100 尺寸 我需要对每个元素进行计算 matrix i j tt 8 5例如 我有一个巨大的矩阵 我想使用 OpenGL 着色器来实现该算法 我想使用着色器 例如 uniform float val unifo
  • 在 Unity 中使用 MRTK 和 Vuforia - 选择什么相机?

    我是 AR 新手 最近几天在 Unity 上设置了 MRTK 和 Vuforia 两者独立运行良好 现在我想在一个项目中使用两者 但问题是两者都有相机 MRTK 有自己的 MixedRealityCamera 和 Vuforia ARCam
  • UV 展开运行时优化

    我正在尝试在运行时创建 UV 我使用 BOX 类型 UV 类似于 3ds max 中的 BOX UVW 并基于面方向进行计算 我知道将其创建为运行时不是一个好的选择 但我别无选择 它是在计算后保存的 所以我做了一次 但我花了 40 秒处理
  • Unity3d 中的多线程脚本调用

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

    如何在 Unity 中解决此问题 无法添加脚本 因为它是编辑器脚本 我想将此脚本从后处理中放入 Unity 但由于这个问题我不能 Unity 有特殊的文件夹名称 其中之一是 编辑 Editor 文件夹用于放置在编辑器中执行的编辑器脚本 它不
  • 将自己的结构传递到 opengl es 2.0 着色器中

    我想尝试 OpenGL ES 2 0 编程指南 一书中的照明示例 在着色器中他们制作了两种结构 struct directional light vec3 direction normalized light direction in ey
  • Unity手游触摸动作不扎实

    我的代码中有一种 错误 我只是找不到它发生的原因以及如何修复它 我是统一的初学者 甚至是统一的手机游戏的初学者 我使用触摸让玩家从一侧移动到另一侧 但问题是我希望玩家在手指从一侧滑动到另一侧时能够平滑移动 但我的代码还会将玩家移动到您点击的
  • Unity 2018.3 android dex合并问题

    在您决定将这篇文章视为 重复 而不阅读它之前 请了解我已经查看了大量与此主题相关的帖子 但我找不到适合我的实例的解决方案 包括 StackOverflow 建议的所有解决方案 大多数帖子都是针对 Android Studio 而不是 Uni
  • Unity 中图像的 onClick 事件

    是否可以在 Unity 中将 onClick 功能添加到图像 画布的组件 var obj new GameObject Image NewImage obj AddComponent
  • 在 Unity 中构建 apk 应用程序时包含文件

    在unity中构建apk文件时如何将文件和文件夹添加到apk文件中 我需要的是在Android上安装应用程序后 在应用程序的父目录 android data com company product files 中存在一些文件和文件夹 这是我
  • 如何让游戏音频在某个点循环播放

    我的游戏中有一场风暴 所以我制作了一个环境音频文件 它慢慢成长为一场风暴 雨逐渐消失 然后变成一个可循环的风暴音频文件 我是这样做的 Play intro clip and merge into main loop var introTim
  • 使用 GCHandle 将大型结构数组从 C# unity 脚本传递到 C++ dll 在 C++ 函数执行后崩溃

    我想从 C unity 脚本将结构数组传递给 c 本机插件 我做了如下操作 我可以访问数据 但我的应用程序在执行 c 函数后崩溃 我不知道为什么 C side StructLayout LayoutKind Sequential publi
  • Android 4.4 - 半透明状态/导航栏 - FitsSystemWindows/clipToPadding 无法通过片段事务工作

    当使用新的 Android 4 4 KitKat API 中的半透明状态栏和导航栏时 设置fitsSystemWindows true and clipToPadding false to a ListView最初起作用 fitsSyste
  • 如何计算正切和副法线?

    谈谈OpenGL着色语言 GLSL 中的凹凸贴图 镜面高光之类的东西 I have 顶点数组 例如 0 2 0 5 0 1 0 2 0 4 0 5 法线数组 例如 0 0 0 0 1 0 0 0 1 0 0 0 世界空间中点光源的位置 例如
  • 在 Unity 中平滑动态生成的网格?

    给定 Unity 和 C 中的网格 其本身是通过合并更简单的基础网格实时创建的 我们如何在运行时 将其变成平滑的 几乎像包裹在布中的网格版本一样 不是完全凸出的版本 而是更圆润 软化锋利的边缘 桥接深间隙等 理想情况下 表面也将像 平滑角度
  • Unity遥控器5不工作

    我尝试运行 Unity Remote 但是当我在 Unity 编辑器中按下播放时 我的手机上没有任何反应 我认为我需要做的不仅仅是将手机与电脑连接 将编辑器设置为任何 Android 设备并按开始键 但这些是它所说的唯一内容 它根本不起作用
  • Three.js、自定义着色器和具有透明度的 png 纹理

    我有一个非常简单的 PNG 纹理 一个带有透明背景的灰色圆圈 我用它作为制服map for a THREE ShaderMaterial var uniforms THREE UniformsUtils merge basicShader
  • 我可以在 WinForms 中的 PictureBox 上创建透明背景吗?

    我想做一个背景PictureBox控制透明 在里面PictureBox 矩形 我放置了一个图标 圆形 我想让图标透明 以便图标下方的其他部分可见 我尝试过设置PictureBox BackColor属性设置为 透明 但不起作用 我还尝试在运
  • 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

随机推荐

  • 样式化组件 - 如何防止将 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 图像 但我在下面使用的点显示在笑脸上方 使用任何其