如何在 Three.js 中使用反射?

2024-04-10

我想在带有 Three.js 的 WebGL 页面中拥有一个反射立方体表面。它应该类似于手机显示屏,反射一些光,但它仍然必须是黑色的。


我创建了一个反射立方体(以及反射球体)的示例,并附有详细的注释。现场版本位于

http://stemkoski.github.com/Three.js/Reflection.html http://stemkoski.github.com/Three.js/Reflection.html

带有格式良好的代码

https://github.com/stemkoski/stemkoski.github.com/blob/master/Three.js/Reflection.html https://github.com/stemkoski/stemkoski.github.com/blob/master/Three.js/Reflection.html

(这是教程示例集合的一部分,位于http://stemkoski.github.com/Three.js/ http://stemkoski.github.com/Three.js/)

要点是:

  • 在场景中添加第二个摄像机(CubeCamera),该摄像机位于表面应具有反射性的对象处
  • 创建材质并将环境贴图设置为第二个摄像机的渲染结果,例如

例如:

 var mirrorCubeMaterial = new THREE.MeshBasicMaterial( 
    { envMap: mirrorCubeCamera.renderTarget } );
  • 在渲染函数中,您必须从所有相机进行渲染。暂时隐藏反射的对象(这样它就不会妨碍您要使用的相机),从该相机进行渲染,然后取消隐藏反射对象。

例如:

mirrorCube.visible = false;
mirrorCubeCamera.updateCubeMap( renderer, scene );
mirrorCube.visible = true;

这些代码片段来自我上面发布的链接;去看一下!

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

如何在 Three.js 中使用反射? 的相关文章

随机推荐

  • 到 ref 属性的绑定何时在 Aurelia 中生效?

    这是这个问题的后续 访问 Aurelia 中的 DOM 元素 https stackoverflow com questions 29863044 access a dom element in aurelia 屏幕激活生命周期中是否有一个
  • ipad / safari 上的盒子阴影

    我在为 Safari 的 ipad 上的输入框添加漂亮的焦点阴影时遇到问题 这是我的代码 remember to define focus styles focus outline 0 input type text width 494px
  • jsctypes - 使用 SHChangeNotifyRegister 处理 MEDIA/DRIVE 事件时出现问题

    我正在尝试在 Firefox 中使用 js ctypes 来接收 USB 媒体 驱动器通知 但我遇到了一些问题 我无法判断是否是因为我对 Win32 API 非常缺乏经验 或者对 js ctypes 很糟糕 或两者 我首先改编了我在亚历山大
  • .net 中 dll 的强名称

    Dll 据说有强名称 如果它有 不带扩展名的程序集名称 Version culture 公钥 应为 dll 提供强名称 我发现要么csc exe 如果是 C 和al exe可以使用used 为dll 提供强名称 当我必须使用csc exe
  • 无法访问包管理器。安装android应用程序时系统是否正在运行

    在模拟器中安装 android 应用程序时 出现以下错误 请帮我解决这个错误 错误信息 emulator exe avd avd name adb wait for device adb install path to apk could
  • 在 Java 中创建 JSON Web 令牌

    我正在尝试创建一个 JSON Web 令牌 以便使用它通过 Google Analytics API 访问进行刷新令牌调用 我采取了服务帐户方法 根据这种方法 我需要 创建服务帐户 添加使用 Google Analytics 帐户为 Ana
  • 下载带有 play 框架的 typesafe2.0,在网络请求上出现异常 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 下载了带有
  • 如何将字节数组转回文件并使用 C# 自动打开它?

    我正在编写一些代码来将文件附件添加到我正在构建的应用程序中 我已经添加和删除工作 但我不知道从哪里开始实施开放 我有一个字节数组 来自表字段 我不知道如何使其自动打开 例如 如果我有一个 PDF 字节数组 如何让我的应用程序自动打开 Acr
  • 如何使用模块向 Fortran 公开 Python 回调

    这个 scipy 文档页面 http docs scipy org doc numpy dev f2py python usage html call back arguments关于 F2Py 指出 回调函数 也可以在模块中显式设置 然后
  • 如何访问角度材料弹出/对话框组件内组件的属性?

    我正在从我的组件中打开一个对话框 const dialogRef this dialog open DialogOverviewExampleDialog width 500px data DialogData dialogRef afte
  • mailx 更改发件人姓名

    我明白要更改发件人姓名mailx我应该做以下事情 mailx r email protected cdn cgi l email protection s some subject email protected cdn cgi l ema
  • Boost ASIO:服务器如何知道客户端是否仍然连接?

    我在用boost asio对于服务器 客户端应用程序 服务器一次只接受一个连接 我想知道服务器验证客户端是否仍然连接的最佳方法是什么 这样做的目的是我希望能够知道客户端是否崩溃 以便我可以重新开始侦听新的连接尝试 在我的应用程序中 我使用以
  • 确实开始了。 。 。 end while 表示“块”?

    temp 98 3 begin print Your temperature is temp to s Fahrenheit puts I think you re okay temp 0 1 end while temp lt 98 6
  • 使用不同的密钥库重新签名 apk

    目前 我正在使用私有密钥库文件对 apk 进行签名 但我想使用不同的密钥库文件对该 apk 进行签名 我怎样才能退出那个apk 您可以使用不同的密钥库来退出您的 apk 按着这些次序 签署发布 1 apk gt 1 release apk
  • 为什么 FreePhysicalMemory 给出的值不正确?

    我正在尝试使用 win32 OperatingSystem 类中的 FreePhysicalMemory 属性 问题是 它通常只返回几个 MB 的值 显然 考虑到我的计算机上仅打开 Powershell 我有更多可用 RAM 我正在使用以下
  • XmlSerializer 将 xsi:type 替换为节点名称

    当前 XmlSerializer 生成以下结构
  • user_data中的命令不会在terraform中执行

    您好 EC2 实例已创建 但作为 userdata sh 一部分的命令未执行 当我通过putty手动连接EC2时 我发现EC2实例中没有安装nginx 为了验证脚本是否正在执行 我添加了回显消息 但当我运行 terraform apply
  • 我们如何确定Python中给定月份的天数[重复]

    这个问题在这里已经有答案了 我需要在 python 中计算给定月份的天数 如果用户输入 2011 年 2 月 程序应该能够告诉我 2011 年 2 月有 28 天 谁能告诉我应该使用哪个库来确定给定月份的长度 你应该使用calendar m
  • 如何使用 Material Design 设计警报对话框片段中的按钮样式?

    我想更改警报对话框上的默认按钮样式 标准警报对话框片段 在 Android L 中 如下所示 我希望将右侧按钮的样式设置为普通按钮而不是无边框按钮 Google 本身似乎在各种对话框中使用了这种模式 例如 有谁知道这是否可能 而无需从头开始
  • 如何在 Three.js 中使用反射?

    我想在带有 Three js 的 WebGL 页面中拥有一个反射立方体表面 它应该类似于手机显示屏 反射一些光 但它仍然必须是黑色的 我创建了一个反射立方体 以及反射球体 的示例 并附有详细的注释 现场版本位于 http stemkoski