Three.js渲染模型与Blender渲染效果差异问题求助
Three.js(React Three Fiber + Next.js)渲染GLB模型与Blender效果差异问题
使用最新版本的Next.js搭配React Three Fiber时,发现Three.js渲染的GLB模型与Blender中的渲染效果在外观和光照上存在巨大差异,希望找到方法让两者渲染效果匹配。
问题复现步骤
- 从Blender导出GLB文件至Three.js,导出设置如下:

- 模型渲染代码:
import React, { useRef } from "react"; import { useLoader, useFrame } from "@react-three/fiber"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader"; import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader"; const GltfModel = ({ rotation, ...props }) => { const gltf = useLoader(GLTFLoader, "./fish_stall_2.glb", (loader) => { const dracoLoader = new DRACOLoader(); dracoLoader.setDecoderPath("../static/js/gltf/"); loader.setDRACOLoader(dracoLoader); }) const ref = useRef(); const object = gltf.scene; // Subscribe this component to the render-loop, rotate the mesh every frame // rotation is updated by passing the "rotation" prop useFrame((state, delta) => { ref.current.rotation.x = rotation.x; ref.current.rotation.y = rotation.y; }); return ( <> <primitive ref={ref} object={object} {...props} /> </> ); }; export default GltfModel;
- 网页渲染效果:模型光照、质感与Blender差异显著
- Blender预期渲染效果:




补充信息
- 尝试使用GLTF Report工具检测,渲染效果仍与Blender差异明显,报告中存在不少2级严重错误,但认为这并非导致渲染差异的主要原因。
- 已搜索相关问题但未找到可行解决方案,现寻求帮助以让Three.js渲染效果匹配Blender。
- Blender源模型文件可通过Google Drive获取
内容的提问来源于stack exchange,提问作者Felix Isaac
相关产品推荐
相关产品推荐

