Java 3D帖图扭曲

文章围绕Java 3D中帖图扭曲问题展开,指出当3D盒子相对摄影机旋转,帖图会因电脑未按透视法则改变而扭曲。给出两种解决办法,一是增加三角面数量,但会延长处理时间;二是使用不对称帖图,可减少三角面数量且效果好,还提醒理解UV帖图原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:whycloud 文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=806

在上一篇Mascot Capsule 3D的技巧文章中(创建Java 3D MIDlet的技巧)提及帖图扭曲的问题是建立3D模型时产生的。该篇文章将在更深程度上解释这个问题,并给出该问题的解决办法。我们将集中经理在讨论一种最普遍的扭曲上,那就是片面不垂直摄影机引起的扭曲。

让我们来看一个最直接的例子。下面的两张图片展示了最简单的3D盒子,一个是没有帖图,一个是有帖图的。所有的一切看上去都没有问题,并且盒子和帖图看上去也没有问题。




在接下来的两个张图片中我们看到是同一个盒子,仅仅是相对摄影机旋转了一定的角度。通过透视法上下两个边会有一定的倾斜度。



这时就出现了一个以外,帖图看起来不在是这么好了。帖图非常清楚的发生了扭曲。究竟是发生了什么?这里要告诉大家,这个盒子在实质是由三角面构成。当发布帖图到三角面的时候,电脑并没有真正地依照透视法则改变帖图;而仅仅是将歪斜地位图放到了三角面上。所以上下两条边看起来是没有问题地,但左上方地砖块是根据定边设置,而右下方地砖块是根据底边设置地,在两个三角面相交地地方就很明显地发生了变形。

我们想要看到的是符合透视法则的砖。我们想要看到的是顶边和底边中间平滑的砖的形状,也就是中间的砖或多或少的平行的砖。然而在上面的图片中事实不是这样的。相反的所有的边都是平行于顶边或底边,并且中间并不是一个平滑的过渡。

一个解决的办法,就是下面的四张图片,我们可以增加组成这墙的三角面的数量。

电脑仍然像以前一样渲染每个多边形,只是多安装了些位图。现在我们有更多三角面,三角面之间的衔接也就更光滑了。

这个方法,只是简单的找了一个在三角面数量和最小可接受的扭曲的折中点。因为这样会带来处理时间延长。

另一个简单的解决办法是使用不对称的帖图来代替砖块帖图。如果你这样做,你可以使用最小的三角面数量,但是看起来仍然没有问题,就像下面的图片。比较下面的四张画面,你会发现它确实改进了很多。

译者心得:这篇文章虽然是在Mascot Capsule 3D范围内,但是JSR184同样存在这个问题,所以个人觉得不论你学习或制作3D程序,使用的是Mascot Capsule 3D或JSR184都应该好好的理解一下UV帖图的原理。

这时就出现了一个以外,帖图看起来不在是这么好了。帖图非常清楚的发生了扭曲。究竟是发生了什么?这里要告诉大家,这个盒子在实质是由三角面构成。当发布帖图到三角面的时候,电脑并没有真正地依照透视法则改变帖图;而仅仅是将歪斜地位图放到了三角面上。所以上下两条边看起来是没有问题地,但左上方地砖块是根据定边设置,而右下方地砖块是根据底边设置地,在两个三角面相交地地方就很明显地发生了变形。

我们想要看到的是符合透视法则的砖。我们想要看到的是顶边和底边中间平滑的砖的形状,也就是中间的砖或多或少的平行的砖。然而在上面的图片中事实不是这样的。相反的所有的边都是平行于顶边或底边,并且中间并不是一个平滑的过渡。

一个解决的办法,就是下面的四张图片,我们可以增加组成这墙的三角面的数量。

电脑仍然像以前一样渲染每个多边形,只是多安装了些位图。现在我们有更多三角面,三角面之间的衔接也就更光滑了。

这个方法,只是简单的找了一个在三角面数量和最小可接受的扭曲的折中点。因为这样会带来处理时间延长。

另一个简单的解决办法是使用不对称的帖图来代替砖块帖图。如果你这样做,你可以使用最小的三角面数量,但是看起来仍然没有问题,就像下面的图片。比较下面的四张画面,你会发现它确实改进了很多。

译者心得:这篇文章虽然是在Mascot Capsule 3D范围内,但是JSR184同样存在这个问题,所以个人觉得不论你学习或制作3D程序,使用的是Mascot Capsule 3D或JSR184都应该好好的理解一下UV帖图的原理。

在接下来的两个张图片中我们看到是同一个盒子,仅仅是相对摄影机旋转了一定的角度。通过透视法上下两个边会有一定的倾斜度。



这时就出现了一个以外,帖图看起来不在是这么好了。帖图非常清楚的发生了扭曲。究竟是发生了什么?这里要告诉大家,这个盒子在实质是由三角面构成。当发布帖图到三角面的时候,电脑并没有真正地依照透视法则改变帖图;而仅仅是将歪斜地位图放到了三角面上。所以上下两条边看起来是没有问题地,但左上方地砖块是根据定边设置,而右下方地砖块是根据底边设置地,在两个三角面相交地地方就很明显地发生了变形。

我们想要看到的是符合透视法则的砖。我们想要看到的是顶边和底边中间平滑的砖的形状,也就是中间的砖或多或少的平行的砖。然而在上面的图片中事实不是这样的。相反的所有的边都是平行于顶边或底边,并且中间并不是一个平滑的过渡。

一个解决的办法,就是下面的四张图片,我们可以增加组成这墙的三角面的数量。

电脑仍然像以前一样渲染每个多边形,只是多安装了些位图。现在我们有更多三角面,三角面之间的衔接也就更光滑了。

这个方法,只是简单的找了一个在三角面数量和最小可接受的扭曲的折中点。因为这样会带来处理时间延长。

另一个简单的解决办法是使用不对称的帖图来代替砖块帖图。如果你这样做,你可以使用最小的三角面数量,但是看起来仍然没有问题,就像下面的图片。比较下面的四张画面,你会发现它确实改进了很多。

译者心得:这篇文章虽然是在Mascot Capsule 3D范围内,但是JSR184同样存在这个问题,所以个人觉得不论你学习或制作3D程序,使用的是Mascot Capsule 3D或JSR184都应该好好的理解一下UV帖图的原理。

这时就出现了一个以外,帖图看起来不在是这么好了。帖图非常清楚的发生了扭曲。究竟是发生了什么?这里要告诉大家,这个盒子在实质是由三角面构成。当发布帖图到三角面的时候,电脑并没有真正地依照透视法则改变帖图;而仅仅是将歪斜地位图放到了三角面上。所以上下两条边看起来是没有问题地,但左上方地砖块是根据定边设置,而右下方地砖块是根据底边设置地,在两个三角面相交地地方就很明显地发生了变形。

我们想要看到的是符合透视法则的砖。我们想要看到的是顶边和底边中间平滑的砖的形状,也就是中间的砖或多或少的平行的砖。然而在上面的图片中事实不是这样的。相反的所有的边都是平行于顶边或底边,并且中间并不是一个平滑的过渡。

一个解决的办法,就是下面的四张图片,我们可以增加组成这墙的三角面的数量。

电脑仍然像以前一样渲染每个多边形,只是多安装了些位图。现在我们有更多三角面,三角面之间的衔接也就更光滑了。

这个方法,只是简单的找了一个在三角面数量和最小可接受的扭曲的折中点。因为这样会带来处理时间延长。

另一个简单的解决办法是使用不对称的帖图来代替砖块帖图。如果你这样做,你可以使用最小的三角面数量,但是看起来仍然没有问题,就像下面的图片。比较下面的四张画面,你会发现它确实改进了很多。

译者心得:这篇文章虽然是在Mascot Capsule 3D范围内,但是JSR184同样存在这个问题,所以个人觉得不论你学习或制作3D程序,使用的是Mascot Capsule 3D或JSR184都应该好好的理解一下UV帖图的原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值