小编gra*_*ful的帖子

在服务器上哪里保存单个值

我正在使用html页面上的点击通话按钮创建应用程序。

会有一个人来接电话。我希望此人能够在我的服务器上设置一个具有布尔值的变量:1可用,0不可用。

我可以创建一个单字段SQL表,但这感觉有点过头,或者我可以读写仅包含一个字符的文本文件。

存储单个值的最正确方法是什么?

php mysql server

5
推荐指数
1
解决办法
884
查看次数

THREE.js OBJLoader - 加载到几何体,操作,然后保存到BufferGeometry

我正在尝试确定为什么我无法平滑加载OBJLoader的阴影几何体.

var loader = new THREE.OBJLoader(manager);
loader.load('/manmodel/js/man.obj', function (object, materials) {
    console.log(object);
    console.log(materials);
    man = object;
    man.traverse(function (child) {
        if (child instanceof THREE.Mesh) {
            child.geometry.computeFaceNormals();
            child.geometry.computeVertexNormals( true );
            child.material = new THREE.MeshPhongMaterial({
                color: 'white',
                shading: THREE.SmoothShading // <-----------  THIS IS THE PROBLEM
            });
        }
    });
    man.position.y = -10;
    scene.add(man);
});
Run Code Online (Sandbox Code Playgroud)

这是结果:

显然是平面阴影

如果我删除行computeFaceNormals(),模型呈现相同.如果我删除computeVertexNormals(true),对象渲染时没有光照(黑色) - 所以我知道这是做某事.

如果我在这段代码中更改了MeshPhongMaterial的颜色属性,颜色会发生变化,所以我也知道这是有效的.

我试图使用顶点和普通助手来确定问题所在,但它们失败了,因为使用BufferGeometry时,面和顶点不会存储为数组.

我也尝试修改man.obj文件,将's'值从'off'更改为1.这没有做任何事.

因为我将为Blender中生成的不同人物加载几个.obj文件,目前每个大约2MB,我更喜欢在浏览器上进行着色而不是将其"烘焙"到文件中,如果这样会增加文件大小.

问题:我在这里遗漏了什么吗?或者,有没有办法将.obj文件作为标准几何体加载,计算法线,应用着色,然后另存为BufferGeometry?

PS.我可能还需要在线下进行光线追踪的法线.

javascript smoothing .obj three.js

4
推荐指数
2
解决办法
6616
查看次数

合并数组中未知数量的子数组

我有一个像这样的数组:

arr = [ [[x,x],[x,x]], [[x,x],[x,x],[x,x]], [[x,x]] ]
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个像这样的数组:

arr = [  [x,x],[x,x] ,  [x,x],[x,x],[x,x],   [x,x]  ]
Run Code Online (Sandbox Code Playgroud)

所以我尝试过这个:

for (var i=1; i< arr.length; i++){ arr[0].concat(arr[i]); }
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我怎样才能“合并”这个中间级别的数组?

javascript

2
推荐指数
1
解决办法
1592
查看次数

标签 统计

javascript ×2

.obj ×1

mysql ×1

php ×1

server ×1

smoothing ×1

three.js ×1