我正在尝试将3D网格展平为2D形状。我想要实现的是像这样的东西
基本上,你在图像中看到的是一个给定的网格及其沿不同视图的轮廓。我想用Three.js为任何给定的网格做同样的事情,但我不知道如何才能得到轮廓。
我想到了两种可能的解决方案:
1)复制网格并沿给定轴进行缩放,使其变平(例如,如果我想获得从正Z到负的形状的轮廓,我只需像这样缩放它:
myMesh.scale.z = 0.001 // Small value to make it "2D-like"
问题:我正在复制和重新绘制一个可能非常大的网格,所以效率不是很高。
2)将网格的顶点投影到2D平面,使它们都在同一级别,然
我有一个3D模型与UV映射创建搅拌机。我应用UV映射的方式,纹理只适用于模型的一侧。我将模型导出为obj和mtl。当我在three.js上导入这个模型时,它按预期工作,加载程序会自动将mtl文件中定义的图像作为纹理应用。
现在,我想在three.js中通过编程改变这个纹理。模型有多种材料(我认为是因为多张脸)。我如何重新应用的材料,保持UV映射和只是改变纹理应用?我想将map和envMap应用到模型中。
var m = new THREE.MeshPhongMaterial({
envMap:
我正在尝试使用从blender导出的.obj和.mtl文件创建一个场景。该对象从字面上看只是一个矩形(它需要是一个.obj文件。将添加更多的对象来创建场景)我可以看到材质加载,但无法看到在chrome或firefox中应用的纹理。
以下是javascript代码:
const obj_loader = new THREE.OBJLoader(),
mtl_loader = new THREE.MTLLoader();
// uses example of OBJ + MTL from three.js/examples
mtl_loader
.setTextureP
我正在用three.js做一个简单的演示,我对来自Unity Game引擎背景的THREE.MeshPhongMaterial的行为感到困惑。 ? create_ring() {
// creates a ring mesh per inputed class data
const material = new THREE.MeshPhongMaterial({
color: this.color,
emissive: this.color,
emissiveIntensity: 1.6
});
const ri
我正在使用three.js做动画。我想动态更新一个立方体网格的材质。下面是一个例子:
// create cube geometry
var material1 = [new THREE.MeshBasicMaterial({color:0xBEE2FF}),.....];
var geometry = new THREE.CubeGeometry(50, 50, 50,0,0,0,material1 );
var cube = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial());
// ...
var material2 = [
我已经成功地在搅拌器中使用骨骼动画技术制作了一个模型的动画,我还使用uv纹理在搅拌器中对其进行了纹理处理。然后在搅拌器中使用three.js导出插件,我已经导出了模型,确保uv和动画在检入。然而,我不知道为动画模型加载纹理的技术。我查看了three.js中包含的变形法线示例,其中使用了兰伯特材质的简单颜色纹理。我有来自外部文件的纹理。如何加载纹理。在js动画模型文件中,纹理是有位置的,并且它在相同的位置。但它不能加载。我也使用了面部材质技术。
我用来修改的three.js示例的位置:
下面是我的代码:
var loader = new THREE.JSONLoader();
我试图在一个Angular应用程序中重现,但我得到了一个黑脸的立方体。控制台中没有错误。
使用法线网格材质(var material = new THREE.MeshNormalMaterial();)时,效果良好。
角度: 7.0.4,three.js: 0.99
import { Component, OnInit } from '@angular/core';
import * as THREE from 'three';
@Component({
selector: 'app-cube',
templateUrl: '.
我已经在搅拌器中制作了一个小场景(6个物体,每个物体使用1到4种材质)。使用开发导出器导出此对象(使用材质和场景选项)并通过以下方式加载它时:
var loader = new THREE.ObjectLoader();
loader.load( 'assets/scene.json', function ( scene ) { ...
然后检查场景,我可以看到它有6个孩子(好的),五个孩子中的每个孩子只有一个MeshLambertMaterial (而不是来自搅拌机的材料混合)坏的。
对我做错了什么有什么提示吗?
顺便说一句,这些是基本的材料(基本上只是一种颜色),没有纹理或