我已使用干净的边缘流模型编辑了此帖子,并在可以帮助您获得反馈的情况下访问了地图。在这种情况下,我也可以复制硬标记的边缘问题:
我在three.js中找到了渲染结果,js显示了低多边形对象的非常硬标记的多边形,我正在将其与sketchfab,unity3d和Iray渲染结果进行比较。
以下是maya中显示的边缘流的快照:https://drive.google.com/open?id=1qNA4VoZf-rSyq3_MQdeZqdFC6BxsE3un
以下是该模型在maya的视图面板中的外观(未细分):https://drive.google.com/open?id=1US-fv5-v2ygReqjRPgcsQSusrAXTxVG5
这是three.js渲染的快照(在红色框中标记得更明显)
https://drive.google.com/open?id=1K3CIBLvA7skVUPWL0qInLcFrK74DtriK
此处没有阴影/后处理滤镜的Sketchfabs
https://drive.google.com/open?id=1rozZyBSU1HwPPk4EnKFyc7SVvFNXQBwz
此处Iray在物质画家中进行渲染: https://drive.google.com/open?id=1cXJzw780-kWH0nANy5ekM0HjRKAdaVQ2
以下是Unity渲染:https://drive.google.com/open?id=1lLFLd8UT48OSvxJcp7arwygZZISsaHkS
如果您需要检查网格/边缘流,则为fbx:https://drive.google.com/open?id=1BwljZNKL3dWJSSca6WYlqSK7os1Hp4pT
我还添加了法线贴图,因为我认为问题可能与针对this(?)的three.js设置有关:https://drive.google.com/open?id=149r3n9JGnb9xEJkf9Eh7ELK2bM83bJX_
反照率地图:https://drive.google.com/open?id=1rGgDUOKbbeE6mrAlTG_6C7b8LgqQ1DF0
我正在重用envmap hdr示例和hdr设置。
有人可以分享一些关于我可以尝试不同方法的想法吗?
谢谢您的帮助,塞尔吉奥。
我尝试了以下操作: 我软化了Maya中的边缘。 我还尝试了以下各行并合并,但没有结果。
// vaseMesh.geometry.mergeVertices();和//vaseMesh.geometry.computeVertexNormals();
normalScale似乎最适合material.normalScale.x = -1;
我也尝试过,但没有根据置换3.js示例https://threejs.org/examples/?q=displ#webgl_materials_displacementmap
进行hdr或色调映射设置的结果相同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");
答案 0 :(得分:1)
功劳归功于@ Mugen87,将设置 ValueError: Expected 2D array, got 1D array instead:
删除为true即可!
干杯,塞尔吉奥