HTML5的SVG是否具有隐藏的表面删除功能/库?

时间:2016-12-13 11:37:08

标签: javascript css html5 canvas svg

所以,在HTML5中,我理解SVG与Canvas的不同之处在于SVG是声明性的,而Canvas是必不可少的。在我看来,可以使用更好的声明性技术来定义形状,然后声明一个视点,让浏览器计算要移除的隐藏曲面。

经过一些谷歌搜索后我找不到多少,有这个链接

https://css-tricks.com/almanac/properties/b/backface-visibility/

但这没有多大帮助。

是否有一个javascript库可以在新的扩展标准酿造中隐藏表面去除?

因此,作为一个示例用例,我想将一个多维数据集定义为12个边,在表面上声明这样的不透明度(以便不对其进行线框化)并让浏览器图形不显示“后”表面。

1 个答案:

答案 0 :(得分:1)

当您想要渲染3d时,有两种解决方案。首先是从后向前渲染每个三角形/四边形。

这通常可以通过平均顶点的位置来计算形状的中间,然后根据z坐标对三角形进行排序来完成。

对它进行排序后,按顺序渲染它们。

另一种解决方案基本上就是你要找的东西。您需要通过在2个侧向量上使用叉积来计算法向量。绘制立方体时,需要在三角形法线和相机的方向向量上使用点积,如果此值小于或等于0(两个向量之间的角度大于90°),则不要画三角形。