着色器使立方体的边缘倾斜?

2024-01-26

这个问题涉及使用着色器(可能在 Unity3D 环境中,但 Metal 或 OpenGL 都可以),以在网格最小立方体上实现圆角边缘。

  • 我希望只使用 12 个三角形的简约网格立方体,

  • 然后通过着色器,

  • 使每个块的边缘(/角)稍微倾斜。

其实这样可以吗带着色器?


我最近完成了这样的着色器的创建。它可以工作的唯一方法是提供 4 个法向量,而不是为每个顶点提供一个法向量(平滑向量、锐向量以及给定顶点的三角形的每条边各一个)。您还需要一个 float3 来检测边缘。

为了在网格中添加此类数据,我制作了一个自定义网格编辑器,它附带了 Unity Asset Store 中的 Playtime Painter Asset。将在下次更新时发布着色器。还将发布到公共 GitHub。

您可以看到一些暗线,这是因为它开始插值到背对光源的法线向量,但由于没有额外的三角形,因此结果在面向相机的三角形上可见。

Update (2/12/2018) Realised that by clipping pixels that end up having a normal facing away from the camera, it is possible to smooth the outline shape. It wasn't tested for all possible scenarios but works great for simple shapes: Clipped edges

As per request added a comparison cube: Cubes with Bump Mapping

现在,游戏时间画家 https://assetstore.unity.com/packages/tools/painting/playtime-painter-91528有该着色器的简化版本,它在 2 个法线向量之间进行插值,并在某些边缘上给出良好的结果。

写了一篇article https://www.quizcanners.com/single-post/2018/02/08/Mobile---friendly-Bevel-Shader-Unity.

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

着色器使立方体的边缘倾斜? 的相关文章

  • 使用意图从 Unity 应用程序向 Android 应用程序发送数据

    我有两个独立的应用程序 AppA 使用 Android Studio 开发 和 AppB 使用 Unity 开发 AppA 将启动 AppB 这是一个游戏应用程序 用户玩完游戏 AppB 并点击退出按钮后 会将游戏记录 字符串数组 发送回A
  • 检测用户是否正在从另一个应用程序播放音乐

    我的游戏有游戏内配乐 如果用户通过 Android 或 iOS 上的媒体应用程序播放自己的音乐 我想暂停音乐 有没有一种方法可以足够有效地在 update 函数中运行 提前致谢 您可以检查音乐是否按照以下描述播放this https sta
  • Unity项目没有解决方案文件

    我刚刚开始学习 Unity 并且创建了一个项目 但我的项目中没有包含 sln 文件 每次我创建 C 脚本并在 Xamarin Studio 中打开它时 我都无法获得任何智能感知 unity项目中没有sln文件正常吗 如果没有 如何将解决方案
  • Unity3D 与 UIView 集成

    如果这个问题重复 请纠正我 我刚刚接触到Unity3D 我只是想问是否可以将Unity3D集成到其他UIView之上 我认为这是不可能的 因为生成的 AppController mm 充当UIApplicationDelegate 即使你设
  • Unity 协程在后台停止

    我的问题如下 目前我在 Android iOS 游戏中运行了几个协程 但是当我将游戏发送到后台以便用手机尝试其他操作时 这些协程会停止 只有在我返回游戏后才恢复 有什么办法可以让协程在游戏在后台时继续运行吗 Android 将按设计暂停您的
  • unity3d - 加速度计灵敏度

    我正在 Unity3D 4 3 中测试加速度计代码 我想做的就是在倾斜 ipad 的同时简单地改变物体角度 以像真实生活一样伪造视角 一切工作正常 除了加速计有点太敏感 即使我把它放在桌子上 我也可以看到游戏对象在闪烁 如何让它不那么敏感
  • 如何让一个不可见的透明按钮起作用?

    查看 Unity 论坛和问答网站中的一些答案 如何制作隐形按钮的答案不起作用 因为删除与按钮关联的图像会使其不起作用 如何解决这个问题并保持不可见属性 同时允许按钮实际工作 这是 Unity 的怪异之处之一 100 的现实世界项目都需要这个
  • CPU 到 GPU 法线映射

    我正在创建一个地形网格 然后这个答案 https stackoverflow com a 5284527 1356106我正在尝试将 CPU 计算法线迁移到基于着色器的版本 以便通过降低网格分辨率并使用在片段着色器中计算的法线贴图来提高性能
  • Phong 着色问题

    我正在根据以下内容编写着色器冯模型 http en wikipedia org wiki Phong reflection model 我正在尝试实现这个方程 其中 n 是法线 l 是光线方向 v 是相机方向 r 是光反射 维基百科文章中更
  • 如何在 Windows 中获取和设置系统音量

    我想使用 unity 和 c 将键盘点击时的操作系统音量设置为一定水平 例如我想将 Windows 音量 不是 unity 设置为 70 我该怎么做 void Update if Input GetKeyDown KeyCode A Set
  • 在无头模式下独立运行 Unity,同时捕获屏幕截图

    我需要创建一个在无头模式下运行的统一项目 使用 batchmode 命令 但它必须捕获屏幕截图 例如每一秒并将它们写到一个文件中 我知道在无头模式下 您需要强制调用 Camera Render 才能渲染任何内容 在捕获第一个屏幕截图后 时间
  • 为什么宇宙飞船与盒子对撞机相撞后不再回头?

    我希望当发生碰撞时将宇宙飞船转回来 但他们继续前进 开箱即用的对撞机和地形 使克隆船在碰撞时我想返回的脚本 using System using UnityEngine using Random UnityEngine Random usi
  • 由于对象的当前状态,操作无效 - Linq on List

    对列表运行 Linq 查询时会引发此错误 我使用 Unity3D 3 0 和 C Unity3D 使用 Mono 2 6 据我所知 Unity3D是单线程的 它的工作原理是将继承基类的 脚本 c cs 文件 附加到 GameObject 此
  • Unity InputField OnValueChanged事件显示InputField.text少一个字符

    我有一个InputField我用它作为搜索栏 我无法自动搜索OnValueChanged因为最初 文本字段将是 现在如果我输入任何字符a the inputField text还是 代替a因此 在添加下一个字符之前不会进行搜索 有没有办法在
  • 与 firebase 集成的 Unity 可在 Unity 编辑器上运行,但不适用于移动设备

    我在 Unity 2020 3 0 f1 上创建了一个简单的应用程序 集成了 Firebase sdk 7 1 0 我基本上是在对 firebase 进行简单的读写 尽管 apk 构建 100 成功 但它在 Unity 编辑器中运行良好 但
  • 在 Unity 中使用 MRTK 和 Vuforia - 选择什么相机?

    我是 AR 新手 最近几天在 Unity 上设置了 MRTK 和 Vuforia 两者独立运行良好 现在我想在一个项目中使用两者 但问题是两者都有相机 MRTK 有自己的 MixedRealityCamera 和 Vuforia ARCam
  • 除了在 Unity3D 中使用“Assets/Gizmos”之外,如何拥有自定义脚本图标

    我知道这个问题可能被问过很多次了 但它经常被回答错误 我想要的是 Use a custom icon for specific components scripts in the Inspector e g Figure 2 and Fig
  • Unity3d 中的多线程脚本调用

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

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

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

随机推荐

  • Qt3D默认制服和属性

    我开始学习通过 QML 使用着色器 但找不到任何讨论传递给着色器的默认统一和属性值的参考资料 在某些示例中 我们可以看到其中的几个 例如顶点位置 or 模型视图投影 这也被传递为mvp 但是没有包含我们可以使用的所有变量的清晰列表 在调查
  • 跨区域小数/双精度解析

    事实上 我有多个可以生成数字数据的系统 它们以文本文件的形式存储在某些网络服务器上 有些系统使用小数点作为分数分隔符 有些系统也使用小数点逗号 应用程序 胖客户端 net 2 0 也可以在任一类型的系统上运行 因此 经过一番绊倒后 我这样做
  • Count 总是返回 1...但是它存在吗?

    我试图在创建文件名之前检查特定类别的 评论 列中是否已存在文件名 如果它已经存在 我想将今天的日期添加到名称中以使其成为唯一的文件名 我似乎无法使用计数来查找它是否存在 当我 echo checkfile 时 无论文件存在与否 它总是返回
  • 三角矩阵系数索引号的算法

    我认为这一定很简单 但我无法正确理解 我有一个 MxM 三角矩阵 其系数逐行存储在向量中 例如 M m00 m01 m02 m03 m11 m12 m13 m22 m23 m33 存储为 coef m00 m01 m02 m03 m11 m
  • 为什么 Mathematica 会打破模块中正常的作用域规则?

    正如最近的一篇文章中指出的post https stackoverflow com questions 2733239 lexical and dynamic scoping in mathematica local variables w
  • 在 Angular 4 模板中显示地图内容

    我正在尝试在我的模板中显示地图 myMap Map
  • Azure 上的静态类和多个实例

    我正在构建一个将部署在 Azure 上的应用程序 如果我使用静态类 所有实例是否都可以访问相同的静态对象 或者每个实例在生成每个实例时都会实例化自己的静态对象 static每个 AppDomain 字段都有一个值 它们显然不会在计算机之间共
  • 如何在 spmd 块中索引共分布式数组

    我正在做一个非常大的计算 大气吸收 其中有很多单独的窄峰 最后全部加起来 对于每个峰 我预先计算了峰形函数值高于我选择的阈值的范围 然后我逐行将峰添加到我的光谱中 下面给出了一个最小示例 X 1 1e7 K numel a count th
  • Javascript对函数数组执行“reduce”如何实现函数组合?

    我在中遇到了这种模式redux compose功能 我仍然不明白在下面的示例中如何从最后一个而不是从第一个开始评估函数 function f2 a return a a function f3 a return a a a function
  • 如何修复 sapper/svelte 中的 localStorage 错误

    import writable from svelte store Read the current token from LocalStorage on boot const token writable localStorage get
  • 如何让 Windows Phone 应用程序像默认应用程序一样加载得更快?

    我发现 Windows 手机中的默认应用程序 如 People Calculator etc 根本不需要时间加载 他们甚至没有启动屏幕图像 我尝试从应用程序的项目中排除 SplashScreenImage jpg 并在手机上运行它 我的应用
  • squeel 中的嵌套查询

    简短版本 如何在 squeel 中编写此查询 SELECT OneTable my count FROM OneTable JOIN SELECT DISTINCT one id count AS my count FROM Another
  • Git Bash 安装 React-Scripts 时出现错误“UNKNOWN:未知错误,scandir 'E:\...\node_modules\@babel\.helper-annotate-as-pure.DELETE'”

    UNKNOWN unknown error scandir E Sorted Capstone WOO WOO net WOO WOO net project FrontEnd frontendapp node modules babel
  • JSON.stringify 缺少属性

    我正在编写一个自定义 console error 函数 以便每次发生错误时我都会收到一封电子邮件 要在电子邮件正文中发送错误 我使用JSON stringify 问题是它缺少一些属性 请参阅下面的两张图片 Email In console
  • 在MVC中使用Json.NET自动将mongodb ObjectId重新设置为字符串

    我有一个 MVC net 项目 并且正在使用 mongodb 在我的一些控制器中 我返回带有 ObjectId 的 JsonResult 我希望将 ObjectId 序列化为字符串 我发现了类似的问题并使用了这个答案 使用自定义JsonCo
  • 选择具有最小计数的行 (*)

    假设我有一个带有列的简单投票表 id primaryKey token int candidate int rank int 我想提取具有特定排名的所有行 按候选人分组 最重要的是仅使用最小计数 到目前为止我已经达到了 SELECT can
  • 自动布局(约束)与自动调整大小蒙版(弹簧和支柱)

    这些布局系统可帮助您调整大小 无论屏幕大小和方向如何 如果我有自动调整大小掩模 弹簧和支柱 这样的简单解决方案 为什么我应该使用自动布局 约束 当我开始使用自动布局时我也有同样的问题 自动布局可以做到这一切弹簧和支柱为我们提供以及更多 自动
  • 数据模板有多贵? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 I have 性能问题 https stackoverflow com q 38248842 1997232我正在努力挖掘原因 到目前为止 我不
  • Zuul 反向代理与 Keycloak 服务器

    我正在使用 Zuul 反向代理实用程序配置 Spring Cloud Angel SR6 应用程序 以隐藏内部服务端口 我的 zuul 边缘 服务发布在 8765 端口 我的组织服务发布在 8083 端口 当我在没有安全性的情况下访问应用程
  • 着色器使立方体的边缘倾斜?

    这个问题涉及使用着色器 可能在 Unity3D 环境中 但 Metal 或 OpenGL 都可以 以在网格最小立方体上实现圆角边缘 我希望只使用 12 个三角形的简约网格立方体 然后通过着色器 使每个块的边缘 角 稍微倾斜 其实这样可以吗带