使用三个 js 更改合并网格上的材质颜色

2023-12-29

是否可以与合并多个网格时使用的缓冲区进行交互以更改所选单个网格上的颜色?

使用网格集合很容易做到这一点,但是具有多种不同材质的合并网格又如何呢?


@hgates,你最后的评论对我非常有帮助,我几天来一直在寻找同样的东西!

好的,我在每个面上设置了一种颜色,并在 材料,解决问题! :)

我在这里写下我使用的整个概念,以便为处于相同情况的人添加正确的答案:

// Define a main Geometry used for the final mesh
var mainGeometry = new THREE.Geometry();

// Create a Geometry, a Material and a Mesh shared by all the shapes you want to merge together (here I did 1000 cubes)
var cubeGeometry = new THREE.CubeGeometry( 1, 1, 1 );
var cubeMaterial = new THREE.MeshBasicMaterial({vertexColors: true});
var cubeMesh = new THREE.Mesh( cubeGeometry );

var i = 0;

for ( i; i<1000; i++ ) {

    // I set the color to the material for each of my cubes individually, which is just random here
    cubeMaterial.color.setHex(Math.random() * 0xffffff);

    // For each face of the cube, I assign the color
    for ( var j = 0; j < cubeGeometry.faces.length; j ++ ) {
        cubeGeometry.faces[ j ].color = cubeMaterial.color;
}

    // Each cube is merged to the mainGeometry
    THREE.GeometryUtils.merge(mainGeometry, cubeMesh);
 }

 // Then I create my final mesh, composed of the mainGeometry and the cubeMaterial
 var finalMesh = new THREE.Mesh( mainGeometry, cubeMaterial );
 scene.add( finalMesh );

希望它能帮助我,就像它帮助我一样! :)

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

使用三个 js 更改合并网格上的材质颜色 的相关文章

  • WebGL - 如何传递无符号字节顶点属性颜色值?

    我的顶点由具有以下结构的数组组成 Position colour float float float byte byte byte byte 传递顶点位置没有问题 gl bindBuffer gl ARRAY BUFFER this vbo
  • 三.js环境光意想不到的效果

    在下面的代码中 我渲染了一些立方体并使用点光源和环境光照亮它们 然而 当设置为 0xffffff 时 AmbientLight 会将侧面的颜色更改为白色 无论其指定的颜色如何 奇怪的是 点光源按预期工作 我怎样才能使环境光表现得像点光 因为
  • -[EAGLContext renderbufferStorage:fromDrawable:] 第二次失败?

    我正在开发一个 iOS openGL ES 应用程序 我正在做通常的 EAGLView ES2Render 的事情 启动时 使用以下代码成功创建 frambuffer BOOL createFramebuffers EAGLContext
  • Android:了解 OnDrawFrame、FPS 和 VSync (OpenGL ES 2.0)

    一段时间以来 我在 Android 游戏中遇到了运动精灵间歇性 卡顿 的情况 这是一个非常简单的 2D OpenGL ES 2 0 游戏 这是一个持续存在的问题 我已经多次重新访问过 在我的游戏循环中 我有 2 个 计时器 一个用于记录前一
  • 如何获取特定 GLSurfaceView 的 EGL 显示/上下文

    这是后续我原来的问题 https stackoverflow com questions 6509588 egl vs gles 2 0 on android e g java 这可能太宽泛 而这个可能太具体 但也许我可以应用牛顿法 我的具
  • 在 Chrome 18 中检测 SwiftShader WebGL 渲染器

    我有一个 2D HTML5 游戏引擎 www scirra com http www scirra com 并且确实想检测 WebGL 是否将使用 Chrome 18 的 Swiftshader 软件渲染器进行渲染 如果是这样我们会much
  • 如何使用三个JS导出然后导入场景?

    我有一个用三个 JS 和大量 Javascript 代码构建的复杂 3D 场景 我需要将此场景导出为一个文件 然后通过简单的 ThreeJS 场景播放器在我的网站上使用它 我尝试过 ObjectExporter 和 SceneExporte
  • Three.js获取立方体的4个角坐标?

    如何获得立方体四个角的坐标 如果您使用 CubeGeometry 宽度 高度 深度 并将立方体放置在某处 那么您的八个角位于 position x width 2 position y height 2 position z depth 2
  • Three.js点击单个粒子

    In this example http jsfiddle net agqq96bq 2 您可以看到 2 个可点击的粒子 但它们都受到点击的影响 另外 我只想检测粒子上的点击 而不将它们过滤出场景 像这儿 if intersects len
  • 三.js、PointerLock和碰撞检测

    我正在开发一个 3D 虚拟家庭项目 除了碰撞检测之外 一切正常 我使用 PointerLockControls 来控制相机和移动 但我不确定如何检测每个可能方向的碰撞 为简单起见 我从与 0 0 0 上的简单立方体的向前和向后碰撞开始 ra
  • Tween JS 基础知识之三个 JS 立方体

    我是 Tween JS 的新手 尝试使用 Tween 制作一个向右移动的简单动画 下面是我在 init 函数中的代码 我使用的是三个 JS var geometry new THREE CylinderGeometry 200 200 20
  • OrbitControls 和 dat.gui 文本不起作用

    我正在使用 Three js 和 dat gui 以及text财产 另外 我的场景中有 OrbitControls cameraControl new THREE OrbitControls camera cameraControl upd
  • 丢弃对 OpenGL 中的程序性能有影响吗?

    我正在读书this http code google com p gdc2011 android opengl wiki TalkTranscript文章 作者写道 以下是如何通过两个简单的步骤在每个平台上编写高性能应用程序 遵循最佳实践
  • 将 FBX 文件转换为 .gltf 后,模型非常小,为什么?

    问题 将 FBX 文件转换为 gltf 后 模型非常小 为什么 我尝试用以下方法缩放模型frontObject scale set 1000 1000 1000 但我收到以下错误 TypeError Cannot read property
  • Three.js:为相机添加灯光

    我想移动和旋转相机 但将点光源保持在相对于相机的相同位置 我读过很多帖子 说您可以将灯光对象添加到相机而不是场景中 就像这样 pointLight new THREE PointLight 0xffffff pointLight posit
  • iPhone glShader二进制

    有谁有如何编译着色器 保存着色器二进制文件以及使用 glShaderBinary 稍后使用 iPhone iOS OpenGL ES 2 0 加载着色器的示例 这是不可能的 至少对于 iOS 4 及更低版本 iOS 不支持任何预编译的二进制
  • Three.js 变换控件 - 如何仅显示两个箭头

    我必须仅使用场景中的变换控件在 XY 方向上显示两个箭头或变换对象 通常 我会问您到目前为止尝试过什么 但是没有关于此控件的文档 如果您不知道自己在寻找什么 那么它是一个相当复杂的对象 需要深入研究 考虑你有一个TranformContro
  • 三种js更新纹理生成Canvas的最佳性能方式

    I have THREE Points with THREE PointsMaterial As a map我使用生成的动态cavas image 我需要重新渲染canvas在每一帧上 我的部分代码 function makeEnemyBa
  • 如何清除 THREE.JS 场景

    我正在尝试找到清除场景中所有对象而不破坏场景本身的方法 我知道命名对象是一种方法 然后当我们想要删除该对象时 我们只需通过它的名称 获取 它即可 但是 我想找到一种快速方法来清除场景中的所有对象 无论它们的名称如何 有简单的方法吗 谢谢 你
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有

随机推荐

  • Python 程序在 PyCharm 中运行后,Tkinter 窗口自动关闭

    我正在 PyCharm 中编写一个小型 Python 游戏 我正在使用 Python 3 4 版本的 Macbook 上执行此操作 游戏会打开一个 Tkinter 窗口并向其中添加一些内容 但是 运行游戏时 它会显示非常短暂并立即关闭 我在
  • 瀑布对话中的 Microsoft Bot Framework LUIS

    我有一个现有的瀑布对话 我想对其进行调整 以便它可以从更复杂的用户对机器人问题的响应中提取数据 在我的 LUIS 应用程序中 我创建了一个名为GetLocation它被训练来寻找一个名为的实体Location 一个例子是用户输入 我正在布里
  • Rails + 延迟作业 => 电子邮件视图模板未更新

    我正在为我的应用程序使用 Rails Delayed Job 每次我更新电子邮件视图时 服务器 延迟的作业都不会接收它 谁在进行缓存 铁路还是延迟工作 知道如何修复它吗 其他信息 我尝试重新启动延迟的作业 但仍然没有帮助 Thanks 旧版
  • .NET (C#) 窗口最小化事件

    嘿 我真的被我的项目困住了 我需要知道任何打开的窗口何时被最小化 恢复并在我自己的应用程序中处理事件 有任何想法吗 编辑 Musigenesis 是对的 我确实想知道其他应用程序何时最小化 恢复 我认为您需要使用 SetWindowsHoo
  • 如何将图片保存在我的应用程序的特定文件夹中(正确)?

    问题是我的应用程序保存图片两次 一个在相机文件夹中 另一个在我指定的文件夹中 但当我在另一台设备上测试该应用程序时 这并没有发生 lunch the camera and make a file to save the image in a
  • Excel表格查找两列的匹配值

    我想创建一个匹配两列的表查找公式 例如 假设我想找到的值Letter所在行的列Type列是Biennial和Result列是Warning A B C 1 Letter Type Result 2 A Annual Exceeds 3 B
  • zsh vi 模式状态行

    zsh 或 bash 有没有办法获得状态行 例如在 VI 中 它会让您知道您处于插入模式 插入 是否有等效的命令行 这已经在以下位置得到了回答超级用户 https superuser com questions 151803 how do
  • 流畅的 NHibernate API 和 .NET 2.0

    我可以将 Fluent NHibernate API 用于 NET 2 0 应用程序吗 否 FluentNhibernate 需要 NET 3 5
  • 确定文件身份的算法

    对于一个开源项目 我正在文件系统之上编写一个抽象层 该层允许我将元数据和关系附加到每个文件 我希望该层能够优雅地处理文件重命名 并在文件被重命名 移动或复制时维护元数据 为此 我需要一种计算文件身份的机制 显而易见的解决方案是计算每个文件的
  • WKWebView 的 WKSelectionGranularityCharacter 选项在 iOS 9 中损坏

    我有一个 iPad 应用程序 使用WKSelectionGranularityCharacter的选项WKWebView 它在 iOS 8 设备上运行良好 在 8 4 模拟器上运行 但在 9 1 上损坏 长按文本会显示放大镜 但松开后不会突
  • Visual Studio 2017 构建工具仍然可供下载吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 Visual Studio 2017 构建工具 它们在某处还可用吗 我可以找到2015 ht
  • 在 ASP.NET Core 中将 html 导出为 pdf

    我想将一段 html 导出到 pdf 文件 但我没有任何兼容的 nuget 包 当我尝试安装任何人时 X 与 netcoreapp1 0 NETCoreApp 版本 v1 0 不兼容 有谁知道使用 ASP NET Core 导出为 pdf
  • 将 PHP 变量传递给 Google Maps API

    当用户注册我的应用程序 大学项目 时 系统会要求他们提供地址 我将此地址转换为纬度和经度 然后将其存储在我的数据库中 我像这样访问纬度和经度
  • CoAP 观察者过多

    我想 观察 CoAP 服务器中的资源 但我注意到 在我注册观察服务器中的一些资源后 我尝试 观察 的其他资源会抛出一条消息 提示 观察者太多 我正在使用 Copper Firefox 连接到服务器 CoAP 服务器可以观察到的资源是否有限制
  • Rails:在连接上使用 .references,即使这不是必需的

    我知道当你使用includes并且您指定一个where连接表上的子句 您应该使用 references example will error out or throw deprecation warning in logs customer
  • 为什么局部变量的常量性会抑制返回值的移动语义?

    struct STest public boost noncopyable STest STest test m n std move test m n explicit STest int n m n n int m n STest Fu
  • 如何在单个查询中获取最大值和最小值?

    我正在使用 MySQL 并且正在寻找一种从两列 例如 posx and posy 仅使用一个查询 Simple SELECT MIN posx MIN posy MAX posx MAX posy FROM table
  • 构建 Clang 时未知的软件包 libcxx 和 libcxxabi?

    我正在尝试使用 libc 从源代码构建 Clang 我试图将 libc 放入树内 同时使用其他组件在树外构建它 我使用的食谱如下 如果我简单地放置libcxx and libcxxabiin tree 然后配置does not拿起它们 它们
  • Homebrew:无法链接Python

    我在 Homebrew 中链接 python 时遇到问题 这是输出 brew link python 链接 usr local Cellar python 2 7 13 错误 权限被拒绝 usr local Frameworks When
  • 使用三个 js 更改合并网格上的材质颜色

    是否可以与合并多个网格时使用的缓冲区进行交互以更改所选单个网格上的颜色 使用网格集合很容易做到这一点 但是具有多种不同材质的合并网格又如何呢 hgates 你最后的评论对我非常有帮助 我几天来一直在寻找同样的东西 好的 我在每个面上设置了一