내 씬을 캔버스의 두 배 해상도로 렌더링 한 다음 디스플레이하기 전에 크기를 줄이고 싶습니다. 3J를 사용하면 어떻게 될까요?슈퍼 샘플 앤티 앨리어싱을 사용하여
8
A
답변
-1
해결 방법 : three.js 초기화 코드에서 렌더러를 만들 때 기본 캔버스의 크기를 두 배로 설정하고 보조 숨겨진 캔버스로 렌더링하도록 설정합니다 기본 캔버스 크기의 두 배입니다. 보조 캔버스에서 필요한 이미지 조작을 수행 한 다음 결과를 기본 캔버스에 표시하십시오.
5
이것은 내 해결책입니다. 소스 주석은 무슨 일이 일어나는지 설명해야합니다. 설정 (초기화) :
// Manually clear you canvas.
renderer.clear();
// Tell the composer to produce an image for us. It will provide our renderer with the result.
composer.render();
참고 :에
var renderer;
var composer;
var renderModel;
var effectCopy;
renderer = new THREE.WebGLRenderer({canvas: canvas});
// Disable autoclear, we do this manually in our animation loop.
renderer.autoClear = false;
// Double resolution (twice the size of the canvas)
var sampleRatio = 2;
// This render pass will render the big result.
renderModel = new THREE.RenderPass(scene, camera);
// Shader to copy result from renderModel to the canvas
effectCopy = new THREE.ShaderPass(THREE.CopyShader);
effectCopy.renderToScreen = true;
// The composer will compose a result for the actual drawing canvas.
composer = new THREE.EffectComposer(renderer);
composer.setSize(canvasWidth * sampleRatio, canvasHeight * sampleRatio);
// Add passes to the composer.
composer.addPass(renderModel);
composer.addPass(effectCopy);
변경 애니메이션 루프는 EffectComposer, RenderPass, ShaderPass 및 CopyShader 파일 three.js를 기본의 일부가 아닙니다. 당신은 three.js에 추가해야합니다. 너무 많은 작업과 완벽한 AA이 PS (아래 코드 참조) 나를 위해
/examples/js/postprocessing/EffectComposer.js
/examples/js/postprocessing/RenderPass.js
/examples/js/postprocessing/ShaderPass.js
/examples/js/shaders/CopyShader.js
1
가장 좋은 방법 : 글을 쓰는 시점에서 그들은 예제 폴더 아래 threejs 프로젝트에서 찾을 수 있습니다 경우 당신은 2보다 더 증가시켜 시작을 너무 날카롭게한다.
renderer = new THREE.WebGLRenderer({antialiasing:true});
renderer.setPixelRatio(window.devicePixelRatio * 1.5);
관련 문제
- 1. SWT에서 앤티 앨리어싱을 켜기
- 2. Emacs에서 앤티 앨리어싱을 끕니다.
- 3. iOS에서 멀티 샘플 앤티 앨리어싱을 사용하면 성능에 어떤 영향이 있습니까?
- 4. 비트 맵의 앤티 앨리어싱을 끕니다.
- 5. 글꼴에서 앤티 앨리어싱을 사용하는 방법
- 6. 앤티 앨리어싱을 사용하여 GraphicsRow를 내보내는 방법은 무엇입니까?
- 7. Xcode에서 앤티 앨리어싱을 비활성화 하시겠습니까?
- 8. 기본적으로 cocos2d에서 앤티 앨리어싱을 사용하지 않습니다.
- 9. pyqtgraph ImageView에서 앤티 앨리어싱을 활성화하는 방법은 무엇입니까?
- 10. 앤티 앨리어싱을 방지하면서 CSS3 호버 천이를 부드럽게하기
- 11. CATransform3DRotate를 사용할 때 앤티 앨리어싱을 사용하는 경우
- 12. 회전보기에서 앤티 앨리어싱을 수행하는 방법은 무엇입니까?
- 13. Matplotlib은 플롯에서 텍스트의 앤티 앨리어싱을 해제합니까?
- 14. 자바 : JTextField에서 텍스트 앤티 앨리어싱을 사용하는 방법?
- 15. CSS에 앤티 앨리어싱을 설정할 수 있습니까?
- 16. Flash에서 글꼴의 앤티 앨리어싱을 해제 하시겠습니까?
- 17. XNA : 2D 2D 앤티 앨리어싱을 축소 하시겠습니까?
- 18. CCSprite (Cocos2D iPhone)에서 앤티 앨리어싱을 해제하십시오.
- 19. wpf에서 앤티 앨리어싱을 사용하는 방법 3d
- 20. 셰이더 및 앤티 앨리어싱을 사용하여 원을 그리는 방법
- 21. 앤티 앨리어싱을 사용하여 평행 육면체의 텍스처 렌더링 (셰어 링이있는 직사각형)
- 22. SDL 창을 만든 후 OpenGL 앤티 앨리어싱을 변경 하시겠습니까?
- 23. OpenGL에서 라인 앤티 앨리어싱을 방지 할 수 있습니까?
- 24. 회전 된 UIView (UIImageView가 아님)에서 앤티 앨리어싱을 수행하는 방법
- 25. HTML Canvas : 앤티 앨리어싱을 사용하지 않고 이미지 그리기
- 26. 윈도우에서 비트 맵을 그릴 때 원하지 않는 앤티 앨리어싱을 사용합니다.
- 27. Flash CS5 - 애니메이션의 모든 텍스트 컨테이너에서 앤티 앨리어싱을 변경하는 방법
- 28. 앤티 앨리어싱을 사용하지 않고 캔버스의 크기를 조정하는 방법은 무엇입니까?
- 29. HTML5 canvas 프리미티브 (곡선 등)에 대한 앤티 앨리어싱을 비활성화합니다.
- 30. XNA-Silverlight 하이브리드 프로젝트에서 앤티 앨리어싱을 사용하려면 어떻게해야합니까?