我正在使用托管在node.js上的three.js。我将它与一个可以生成opengl纹理作为输出帧的相机一起使用。我想在three.js中使用这个实时的纹理流。我已经能够在相机和three.js之间创建共享上下文,并且我可以确认在相机上下文和three.js上下文中都存在纹理。我不太确定如何让three.js尊重外部维护的纹理。现有的videotexture对象不是正确的方式,它从浏览器dom对象复制帧数据,我想直接使用相机生成的纹理。
由于这类似于threejs的render- to -texture支持,只是渲染发生在threejs之外,所以我尝试修改该代码以支持外部纹理,但这看起来有点繁
我正在努力学习three.js,并且正在查找一些例子。我试图运行这个代码,但是,它所显示的只是一个黑屏。
我将three.js源文件修改为我的目录,还将材质修改为以下内容,因为我没有板条箱纹理。var material = new THREE.MeshStandardMaterial({metalness: 0, roughness: 0.5}); material.color.setHex(0xc23560)
我有一个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中对一个几何图形建模,将其导出到JSON,然后将其放入我的three.js场景中。它可以很好地处理基本的three.js材质。现在我想要加载一个颜色,镜面反射和法线贴图到我的几何体中。但每次我尝试添加单个纹理时,该几何图形都会在浏览器中消失。
下面是我的代码:
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load( "models/schuh.js", addModelToScene );
var texture = new THREE.Im
在three.js中,我创建了一个使用纹理来控制透明度的材质。纹理是从画布创建的。画布是用rgba的fillStyle绘制的。Alpha在画布上各不相同。我追求的效果是改变材质附加到的对象的透明度。这是不可能的。该对象保持不透明。 代码: tubeTexture = new THREE.Texture(canvas);
tubeTexture.center.set(0.5, 0.5);
tubeTexture.rotation = Math.PI/2.0;
// turn off any filtering to create sharp edges when highlighting
/
我找到了来自github的参考代码和关于堆栈溢出上的对象旋转的其他问题。
var vector = new THREE.Vector3( 1, 0, 0 );
var axis = new THREE.Vector3( 1, 0, 0 ).normalize();
var angle = Math.PI / 2;
function rotateAroundWorldAxis(object, axis, angle) {
我已经在搅拌器中制作了一个小场景(6个物体,每个物体使用1到4种材质)。使用开发导出器导出此对象(使用材质和场景选项)并通过以下方式加载它时:
var loader = new THREE.ObjectLoader();
loader.load( 'assets/scene.json', function ( scene ) { ...
然后检查场景,我可以看到它有6个孩子(好的),五个孩子中的每个孩子只有一个MeshLambertMaterial (而不是来自搅拌机的材料混合)坏的。
对我做错了什么有什么提示吗?
顺便说一句,这些是基本的材料(基本上只是一种颜色),没有纹理或
我试图使用Three.js沿着弧线打印文本。在的帮助下,我得到了旋转的数学。但是,正如你会看到的,文本本身是乱七八糟的。我怎样才能使它正确地将自身空间隔开呢?Codepen是。
var container, camera, scene, renderer;
function init() {
container = document.getElementById( 'canvas' );
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(50, window.innerWidth/win