У меня есть проект three.js с 3d-моделями, грунтом и сеткой. 3d-модели обводятся с помощью outlinePass (https://threejs.org/examples/?q=outl#webgl_postprocessing_outline).
Я могу перемещать объекты с помощью Transformcontrol (https://threejs.org/examples/?q=transf#misc_controls_transform), и я могу изменить положение моей камеры с помощью Orbitcontrols (https://threejs.org/examples/?q=orbit#misc_controls_orbit)
Проблема: графика выглядит отчасти плохо, вот некоторые скриншоты: https://imgur.com/gallery/3FrZt3s
Я не знаю, какие настройки мне следует использовать здесь:
renderer = new THREE.WebGLRenderer();//{ antialias: true } ); With antialiasing or without?
//antialiasing is only needed when not using fxaa, right??
renderer.setPixelRatio( window.devicePixelRatio );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.gammaOutput = true;
renderer.physicallyCorrectLights = true;
camera = new THREE.PerspectiveCamera( 45, container.offsetWidth / container.offsetHeight, 0.001, 1000 );
camera.addEventListener( 'change', render ); //Is this necessary? Seems like it has no use
FXAAВероятно, это необходимо для outlinePass (также в приведенном выше примере outlinePass).
composer = new EffectComposer( renderer );
var renderPass = new RenderPass( scene, camera );
composer.addPass( renderPass );
effectFXAA = new ShaderPass( FXAAShader );
effectFXAA.uniforms[ 'resolution' ].value.set( 1 / window.innerWidth, 1 / window.innerHeight );
effectFXAA.renderToScreen = true;
composer.addPass( effectFXAA );
orbitControls = new OrbitControls( camera, renderer.domElement );
orbitControls.update();
orbitControls.addEventListener( 'change', render );
function render(){
renderer.render(scene, camera);
//composer.render(); // don't know if needed
}
Поэтому я должен сказать, что на самом деле понятия не имею, как решить проблему рендеринга и какие настройки мне нужноЯ собираюсь извлечь максимум пользы из своего проекта. Я рад каждому совету и ответам, и, возможно, я смогу собрать эти ответы вместе и решить проблему.