深入理解three.js对svg的支持(二):SVGRenderer

前言:SVG作为一种优秀的矢量图形格式在Web得到广泛应用,three.js作为知名的WebGL库自然也对其提供了支持。然而,官方文档中对此的说明十分单薄,网上与此相关的资源也不多。经过多次试验之后,在此分享我的一点理解,包括SVGLoader,SVGObject,SVGRenderer,svg和THREE对象的互相转化等内容。

2 SVGRenderer

上文说到了SVGRenderer的机制,那么这一节就来看看源码。源码不长,只有500多行。

2.1 THREE对象转svg

SVGRenderer代码的核心在this.render方法上。渲染的数据从投影得来:

_projector = new THREE.Projector(),

...

_renderData = _projector.projectScene( scene, camera, this.sortObjects, this.sortElements );
_elements = _renderData.elements;
_lights = _renderData.lights;

至于Projector.js就复杂多了,单单projectScene方法代码的行数就和整个SVGRenderer.js一样多,不再深究,有兴趣的自行研读。

_renderData</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值