java - 多边形顶点作为 UV 坐标

标签 java swing graphics 3d

我正在使用 Graphics 类在 Java 中开发 3D 渲染器,它现在能够绘制任何带有彩色面孔的形状,但是我想知道是否可以对面孔进行纹理处理?我见过很多人用 Javascript 创建软件渲染器,所以肯定有一个等效的功能/方法,但是他们在 Java 中做的......
到目前为止,我环顾四周,但我能找到的只有 Graphics.setClip(Shape),我认为它不合适,因为它只是设置背景纹理,如果顶点移动则不会拉伸(stretch)纹理 - 这只是在 2D 中,它还需要在纹理与相机成一定角度时拉伸(stretch)/倾斜纹理(想想旋转立方体的侧面)。

我真的不知道从哪里开始,我不能使用 XOR 模式,因为没有倾斜,如果我必须手动计算,我真的不知道如何计算。
这些 Javascript 软件渲染器是如何做到如此出色的?

最佳答案

您可以利用 java.awt.TexturePaint ,图文并茂herehere .在这种情况下,您应该知道 TexturePaint 与渲染表面的栅格对齐,而不是与形状的边界对齐。

image

附录:同时 shading是一个广泛的主题,还可以考虑使用 alpha 梯度着色的基于像素的方法,在引用 hereKineticModel 中进行了说明。 .请注意,这样的渐变可以应用于 TexturePaintWritableRaster

对于非仿射变换,请参阅 javax.media.jai.Warp.Warp,引用 here .

关于java - 多边形顶点作为 UV 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21641260/

相关文章:

java - Hibernate与同一实体的递归多对多关联

java - 通过命令行运行基于组的测试时,不遵守 TestNG 注释

java - JFileChooser getCurrentDirectory 返回错误的当前目录?

algorithm - 尝试修复 3D 网格法线

java - 使用 libgdx 和 scene2d 的触摸事件

java - JCA 示例实现

java - 弹出文本字段 Java

java - 如何在 JTextPane 中嵌入可调整大小的 JPanel?

opengl - SDL 坐标系,从 (0,0) 到 (w,h) 或 (w-1, h-1)?

algorithm - 如何确定多个元素的边界矩形?