gpt4 book ai didi

javascript - Three.js - 如何设置对象的边框?

转载 作者:行者123 更新时间:2023-11-28 13:27:11 27 4
gpt4 key购买 nike

我有用 Three.js 创建的多边形/多面体吗?是否可以设置边框宽度和颜色?这是我的示例代码,您可能会在其中看到一个图。如何设置边界?可能还有其他方法来创建多边形?

<html> 
<head>
<title>Моё</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
body { margin: 0; }
canvas { width: 100%; height: 100% }
</style>
</head>
<body>
<script src="../build/three.min.js"></script>
<script src="http://stemkoski.github.io/Three.js/js/OrbitControls.js"></script>
<script>
var phi = 0;
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 3000 );
//var camera = new THREE.OrthographicCamera( window.innerWidth / - 200, window.innerWidth / 200, window.innerHeight / 200, window.innerHeight / - 200, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );


var polyhedronShape, polyhedronPts = [], cube, mesh;
var container, scene, camera, renderer, controls, stats;
// CONTROLS
controls = new THREE.OrbitControls( camera, renderer.domElement );

polyhedronPts.push( new THREE.Vector2 ( 0, 60) );
polyhedronPts.push( new THREE.Vector2 ( 60, 60) );
polyhedronPts.push( new THREE.Vector2 ( 60, 0) );

polyhedronShape = new THREE.Shape( polyhedronPts );

var extrudeSettings = {amount: 20}; // bevelSegments: 2, steps: 2 , bevelSegments: 5, bevelSize: 8, bevelThickness:5

var geometry = new THREE.ExtrudeGeometry( polyhedronShape, extrudeSettings );

mesh = new THREE.Mesh( geometry, new THREE.MeshBasicMaterial( { color: 0x00cc00 } ) );
//mesh.position.set( 0, 0, 0 );
//mesh.rotation.set( 0, 0, 100 );
//mesh.scale.set( 1, 1, 1 );
scene.add( mesh );


camera.position.z = 111;
//cube.position.x += 2;
var cam_z = 0.1, cam_max = 9, cam_min = 2;
function render() {
requestAnimationFrame( render );
controls.update();
if (Math.random() > 0.2) {
renderer.render( scene, camera );
//camera.position.z += cam_z;
}
}
render();
</script>
</body>
</html>

最佳答案

我不确定是否 this outline effect 是您正在寻找的内容,但这是在对象周围添加边框的好方法:

<强> Here a similar question 您可以在其中找到更多示例和 working fiddle 胡闹。

如果我没记错的话,它使用了一些 WebGL 原生着色器效果,就是这一部分:

vertex_shader: [
"uniform float offset;",
"void main() {",
"vec4 pos = modelViewMatrix * vec4( position + normal * offset, 1.0 );",
"gl_Position = projectionMatrix * pos;",
"}"
].join("\n"),

关于javascript - Three.js - 如何设置对象的边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28232917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com