Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 与sketchfab/unit3d/Iray相比,低多边形模型tris的渲染在three.js中显示非常硬/标记_Unity3d_Three.js_Render_Substance - Fatal编程技术网

Unity3d 与sketchfab/unit3d/Iray相比,低多边形模型tris的渲染在three.js中显示非常硬/标记

Unity3d 与sketchfab/unit3d/Iray相比,低多边形模型tris的渲染在three.js中显示非常硬/标记,unity3d,three.js,render,substance,Unity3d,Three.js,Render,Substance,我用一个干净的边缘流模型和地图编辑了这篇文章,如果这有助于获得反馈的话,你可以访问这些模型和地图。对于这种情况,我也可以复制硬标记边缘问题: 我发现three.js中的渲染结果显示了低多边形对象的非常硬的标记多边形,我将其与sketchfab、unity3d和Iray渲染结果进行比较 以下是maya中显示的边流快照: 以下是模型在maya的“视图”面板(未细分)中的外观: 下面是用红色框标记的three.js渲染的快照,更值得注意 这里的sketchfabs没有阴影/后处理过滤器 在这里,Ira

我用一个干净的边缘流模型和地图编辑了这篇文章,如果这有助于获得反馈的话,你可以访问这些模型和地图。对于这种情况,我也可以复制硬标记边缘问题:

我发现three.js中的渲染结果显示了低多边形对象的非常硬的标记多边形,我将其与sketchfab、unity3d和Iray渲染结果进行比较

以下是maya中显示的边流快照:

以下是模型在maya的“视图”面板(未细分)中的外观:

下面是用红色框标记的three.js渲染的快照,更值得注意

这里的sketchfabs没有阴影/后处理过滤器

在这里,Iray在实体画师中渲染:

下面是Unity render:

如果需要检查网格/边流,以下是fbx:

我还添加了法线贴图,因为我认为问题可能与我的three.js设置有关:

反照率图:

我正在重用envmap hdr示例和hdr设置

有人能分享一些我可以尝试不同的想法吗

谢谢你的帮助,塞吉奥

我尝试了以下方法: 我在maya中软化了边。 我也尝试了下面的行单独和合并,但没有结果

//vaseMesh.geometry.mergeVertices;和//vaseMesh.geometry.computeVertexNormals

normalScale在材质方面似乎是最好的。normalScale.x=-1

我也尝试过,但没有hdr或色调映射设置,结果与displacement three.js示例相同


由于@Mugen87给出了答案,所以删除了设置flatShading为true就成功了


干杯,塞尔吉奥

我发现这类问题通常来自不良的多边形流或重叠顶点。如果没有看到网格,很难知道是哪个。谢谢你的评论@2pha。我用一个干净的边缘流模型更新了这篇文章,它复制了硬标记的边缘。我还添加了fbx,如果这有助于获得一些指导,请。渲染结果比较将表明my three.js设置中存在错误?
renderer = new THREE.WebGLRenderer();
renderer.toneMapping = THREE.LinearToneMapping;

//load vase material textures once loaded
                manager.onLoad=function () {
                    material = new THREE.MeshStandardMaterial( { 
                        color: 0xffffff,
                                roughness: params.roughness,
                                metalness: params.metalness,
                                map: albedoM,
                                normalMap: normalMap,
                                normalScale: new THREE.Vector2( 1, -1 ),
                                aoMap: aoMap,
                                aoMapIntensity: 1,
                                flatShading: true,
                                side: THREE.DoubleSide
                    } );

                    var myObjectLoader = new THREE.FBXLoader(  );

                    myObjectLoader.load( "Piece1.fbx", function ( group ) {
                        console.log("On object loading");
                        var geometry = group.children[ 0 ].geometry;
                        geometry.attributes.uv2 = geometry.attributes.uv;
                        geometry.center();

                        vaseMesh = new THREE.Mesh( geometry, material );
                        vaseMesh.material=material;
                        //vaseMesh.geometry.mergeVertices();
                        //vaseMesh.geometry.computeVertexNormals();
                        material.normalScale.x = -1;
                        scene.add( vaseMesh );
                        console.log("Finished adding to scene");
                        vaseMesh.position.set(0,0,0);
                        animate();
                    } );                    
                }

                var textureLoader = new THREE.TextureLoader(manager);
                var albedoM = textureLoader.load( "vaseTextures/albedo.png");
                var normalMap = textureLoader.load( "vaseTextures/normal.png");
                var aoMap = textureLoader.load( "vaseTextures/ao.png");