三.js概述

2023-12-08

是否可以使用 Three.js 在我的 3D 模型上显示黑色轮廓?

我想要看起来像《无主之地 2》的图形。(卡通阴影 + 黑色轮廓)


我确信我来晚了。希望这能解决稍后某人的问题。

这是交易,您不需要渲染一切两次,开销实际上并不大,您所需要做的就是复制网格并将复制网格的材质面设置为“背面”。没有双重通过。您将渲染两个网格,其中大部分轮廓的几何体由 WebGL 的“背面剔除”剔除。

这是一个例子:

var scene = new THREE.Scene();

//Create main object
var mesh_geo = new THREE.BoxGeometry(1, 1, 1);
var mesh_mat = new THREE.MeshBasicMaterial({color : 0xff0000});
var mesh = new THREE.Mesh(mesh_geo, mesh_mat);
scene.add(mesh);

//Create outline object
var outline_geo = new THREE.BoxGeometry(1, 1, 1);
//Notice the second parameter of the material
var outline_mat = new THREE.MeshBasicMaterial({color : 0x00ff00, side: THREE.BackSide});
var outline = new THREE.Mesh(outline_geo, outline_mat);
//Scale the object up to have an outline (as discussed in previous answer)
outline.scale.multiplyScalar(1.5);
scene.add(outline);

有关背面剔除的更多详细信息,请查看:http://en.wikipedia.org/wiki/Back-face_culling

如果您想为对象添加轮廓,而不添加卡通着色器,从而失去“真实感”,则上述方法非常有效。

卡通着色本身支持边缘检测。他们在《无主之地》中开发了“cel”着色器来实现这种效果。

在卡通渲染中,开发人员可以使用对象复制方法(在[低]管道级别完成),也可以使用图像处理滤波器进行边缘检测。这是两种技术之间性能权衡的比较点。

有关 cel 的更多信息:http://en.wikipedia.org/wiki/Cel_shading

Cheers!

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

三.js概述 的相关文章

随机推荐

  • 将 printf 重定向到两个流

    我正在扩展一个现有的 C 项目 将所有信息打印到stdout with printf 我希望将此信息打印到标准输出和日志文件 如果我是原始项目的贡献者 我会替换所有printf使用我的自定义日志函数进行调用 唉 我不是 所以这是我的问题 是
  • SQL 包含问题

    谁可以给我解释一下这个 我有两个查询及其结果如下 query select from tbl where contains name he AND ca 结果集 赫兹租车 海明威的小酒馆 query select from tbl wher
  • Unity 3D/球体中的翻转法线

    我已经为我的游戏编写了这段代码 我想要的是统一翻转纹理上的法线 我有一个模型和一个纹理 希望纹理位于球体模型内部而不是外部 我想通过在翻转纹理顶部的球体内部的图像周围移动相机来创建 360 度全景效果 现在 当我第一次按下播放按钮时 它运行
  • PHP domDocument 删除子节点的子节点

    如何删除子节点的父节点 但保留所有子节点 XML 文件是这样的
  • 插入一行并避免竞争条件 (PHP/MySQL)

    我正在开发一款多人游戏 该游戏有一个类似大厅的区域 玩家可以选择要进入的 区域 大厅网关由 PHP 提供支持 而实际的游戏玩法则由一台或多台 Java 服务器处理 数据存储是MySQL 幸福之路 玩家选择一个区域并告诉大厅他想进入 大厅检查
  • 如何使用 PowerShell 导出特定的 Excel 列?

    我有一个包含多列的 Excel 我想将一些特定列导出到 xlsx文件 但它导出 Excel 的前 3 列 而不是具有特定标题的列 Host CPU usage Memory usage SourceFileDirectory C TEMP
  • 使用方法为案例类生成伴随对象(字段 = 方法)

    使用 scala macros 为案例类生成伴随对象 我尝试过的一些代码示例 它有效 我可以获取元组列表 名称 gt 类型 但如何在同一范围内生成对象 import c universe val tpe weakTypeOf T val f
  • 从 R 中的函数写入全局环境

    我是 R 新手 在理解如何处理本地和全局环境方面遇到一些困难 我检查了Post关于局部和全局变量 但无法弄清楚 例如 如果我想使用一个函数绘制几张图并像这样保存它们 PlottingFunction lt function type typ
  • 嵌套 CSS 网格布局在 Chrome 和 Firefox 中的不同行为

    我正在尝试使用 CSS 网格布局来模拟一些响应行为 特别是 grid template columns repeat auto fill minmax 250px 1fr 我的例子https codepen io elgs pen goNx
  • 删除评论标签但不满足于 BeautifulSoup

    我正在使用 BeautifulSoup 练习一些网页抓取 特别是我正在查看 NFL 比赛数据 更具体地说是本页上的 球队统计 表 https www pro football reference com boxscores 20180906
  • 如何将 IceFaces 组件映射到 java.util.Calendar 字段?

    有谁知道如何组件
  • HttpURLConnection c = URL.openConnection(); c.setRequestProperty() 不起作用

    这里的代码是一个普通的Java应用程序 而不是Android应用程序 它旨在将C2DM消息发送到具有YOUR REGISTRATION STRING的设备 作为具有auth key的开发人员 问题如下所述 import java io Bu
  • 为什么 mov 不能设置代码段寄存器 CS,尽管它可以设置其他寄存器?

    我需要知道使用 mov 指令直接加载代码段寄存器是否有任何限制 在从实模式切换到保护模式时 这一点让我印象深刻 我发现为了将正确的值放入代码段中 使用 跳转 指令来设置正确的段 那么跳转指令的这种使用是否是由于任何这样的限制 为什么我们不能
  • (无法修复)程序集存在于 SQL Server 2014 上,但它声称没有它

    Update 这个问题无法修复 https connect microsoft com SQLServer Feedback Details 809697 我正在尝试使用 net 4 5 创建 SQL CLR 程序集 但它告诉我它丢失了sy
  • 从日历周获取月份 (SQL Server)

    我有以下问题 在 Microsoft 的 SQL Server 中 我有一个表 其中存储了一年和日历周 从星期一开始 现在 我想编写一个函数 返回该日历周开始的月份 即 如果星期一是 7 月 31 日 它应该返回 7 我还没有找到一个内置函
  • git diff hunk 标头中的摘录来自哪里?

    当我使用git diff在 C 文件中 我看到类似这样的内容 diff git a foo cs b foo cs index ff61664 dd8a3e3 100644 a foo cs b foo cs 15 6 15 7 stati
  • ASP.NET MVC 5 ajax 错误状态文本始终为“错误”

    我在向 ajax 调用发送错误自定义消息时遇到问题 我的控制器返回如下内容 return new HttpStatusCodeResult 400 My error 我的 ajax 代码如下所示 error function xhr htt
  • dateFromString 更改后 24 小时返回 nil

    NSDateFormatter timeFormat NSDateFormatter alloc init timeFormat setDateFormat hh mm a NSDate sourceDate timeFormat date
  • 在 JNI 中返回多维数组

    我想将一个已经存在的多维数组从 C 返回到 Java 代码 我的代码如下 int cells 3 3 0 int Java com packagename appname GameView addNew JNIEnv env jobject
  • 三.js概述

    是否可以使用 Three js 在我的 3D 模型上显示黑色轮廓 我想要看起来像 无主之地 2 的图形 卡通阴影 黑色轮廓 我确信我来晚了 希望这能解决稍后某人的问题 这是交易 您不需要渲染一切两次 开销实际上并不大 您所需要做的就是复制网