【发布时间】:2012-11-14 22:30:41
【问题描述】:
我想开始使用 EffectComposer 对我的渲染进行一些后处理,但我无法获得用于渲染到屏幕的最基本设置。它只是保持空白。我一定在看什么。有人有想法吗?
<!doctype html>
<html>
<head>
<title>game</title>
<style type="text/css">
html, body {
margin: 0px;
width: 100%;
height: 100%;
}
canvas {
display: block;
}
</style>
</head>
<body>
<canvas id="viewport"></canvas>
<script type="text/javascript" src="three.js"></script>
<script type="text/javascript" src="CopyShader.js"></script>
<script type="text/javascript" src="ShaderPass.js"></script>
<script type="text/javascript" src="EffectComposer.js"></script>
<script type="text/javascript" src="RenderPass.js"></script>
<script type="text/javascript" src="MaskPass.js"></script>
<script type="text/javascript">
var width = document.body.clientWidth;
var height = document.body.clientHeight;
var canvas = document.querySelector('#viewport');
var renderer = new THREE.WebGLRenderer({canvas: canvas});
renderer.setSize(width, height);
var scene = new THREE.Scene();
var cube = new THREE.Mesh(
new THREE.CubeGeometry(30, 30, 30),
new THREE.MeshPhongMaterial({color: 0xFF0000}));
scene.add(cube);
var camera = new THREE.PerspectiveCamera(45, width / height, 0.1, 1000);
camera.position = new THREE.Vector3(60, 60, 60);
camera.lookAt(cube.position);
camera.updateMatrix();
scene.add(camera);
var pointLight = new THREE.PointLight(0xFFFFFF);
pointLight.position = new THREE.Vector3(100, 80, 20);
scene.add(pointLight);
var renderPass = new THREE.RenderPass(scene, camera);
renderPass.renderToScreen = true;
var composer = new THREE.EffectComposer(renderer);
composer.addPass(renderPass);
renderer.clear();
composer.render();
//renderer.render(scene, camera);
</script>
</body>
</html>
如果我取消注释最后一行,我会在屏幕上看到一些东西。
【问题讨论】:
-
我遇到了同样的问题,除了我可以让它渲染,但它渲染成一团糟。我也不认为“renderPass.renderToScreen = true;”实际上是 renderpass 的一个选项(我知道它似乎应该有,就像电影一样,但是如果你查看 RenderPass.js 的源代码,它没有 renderToScreen 选项。
-
您是否尝试过我的示例,因为当我在这里使用
renderer.render(scene, camera);时,我的立方体正确显示在屏幕上。 -
是的,如果同时启用会发生什么? cytoweb.co.uk/3ds/examples/freakout.html
-
然后它只是渲染我的立方体,就像它应该的那样
-
不知道是不是我的着色器导致了我的问题.. 嗯
标签: javascript three.js