JavaFX文档翻译——TriangleMesh篇

Defines a 3D triangle mesh that consists of its associated VertexFormat and a set of separate arrays of vertex components such as points, normals, texture coordinates, and an array of faces that define the individual triangles of the mesh.

TriangleMesh类定义了一个3D的三角形网格,这个网格由它相关的VertexFormat类和一组独立的顶点组件数组组成。其中,顶点组件包括:点、法线、纹理坐标和一组定义单个三角形网格的表面数组。

Note that the term point, as used in the method names and method descriptions, actually refers to a 3D point (x, y, z) in space representing the position of a single vertex. The term points (plural) is used to indicate sets of 3D points for multiple vertices.

请注意,在函数名和函数描述中所谓的“点”,实际上是指三维空间中的一个点。

Similarly, the term normal is used to indicate a 3D vector (nx, ny, nz) in space representing the direction of a single vertex. The term normals (plural) is used to indicate sets of 3D vectors for multiple vertices.

相似的,术语“法线”是用来表示空间中的一个3维矢量,这个矢量代表一个点的方向。

The term texCoord is used to indicate a single pair of 2D texture coordinates (u, v) for a single vertex, while the term texCoords (plural) is used to indicate sets of texture coordinates for multiple vertices.

术语“texCoord”用来表示一个顶点的2维纹理坐标(u,v)。术语“texCoords”被用来表示多个顶点的一组纹理坐标。

Lastly, the term face is used to indicate 3 set of interleaving points, normals (optional, depending on the associated VertexFormat) and texture coordinates that together represent the geometric topology of a single triangle, while the term faces (plural) is used to indicate sets of triangles (each represent by a face).

最后,术语“face”表示一组“点”、“法线”、“纹理坐标”的集合,一个face表示一个三角形的几何拓扑。其中“法线”是可选的,依赖于相关的VertexFormat。术语“faces”表示一组三角形的几何拓扑。

For example, the faces with VertexFormat.POINT_TEXCOORD that represent a single textured rectangle, using 2 triangles, have the following data order: [ p0, t0, p1, t1, p3, t3, // First triangle of a textured rectangle p1, t1, p2, t2, p3, t3 // Second triangle of a textured rectangle ]

例如,一个拥有VertexFormat.POINT_TEXCOORD属性的faces代表了一个具有纹理的长方形,这个长方形由两个三角形构成,这个faces的数据结构如下: [ p0,t0,p1,t1,p3,t3, //具有纹理的长方形的第一个三角形 p1,t1,p2,t2,p3,t3//长方形的第二个三角形 ]

whereas the faces with VertexFormat.POINT_NORMAL_TEXCOORD that represent a single textured rectangle, using 2 triangles, have the following data order: [ p0, n0, t0, p1, n1, t1, p3, n3, t3, // First triangle of a textured rectangle p1, n1, t1, p2, n2, t2, p3, n3, t3 // Second triangle of a textured rectangle ]

然而,如果faces具有参数VertexFormat.POINT_NORMAL_TEXCOORD,那么这个faces代表了一个具有纹理的3D长方形,faces的数据结构如下: [ p0, n0, t0, p1, n1, t1, p3, n3, t3, // 具有纹理的长方形的第一个三角形 p1, n1, t1, p2, n2, t2, p3, n3, t3 // 长方形的第二个三角形 ]

where p0, p1, p2 and p3 are indices into the points array, n0, n1, n2 and n3 are indices into the normals array, and t0, t1, t2 and t3 are indices into the texCoords array.

p0, p1, p2和p3的位置代表着点的数组,n0, n1, n2和n3为法线数组,t0, t1, t2和t3为纹理坐标数组。

A triangle has a front and back face. The winding order of a triangle’s vertices determines which side is the front face. JavaFX chooses the counter-clockwise (or right-hand rule) winding order as the front face. By default, only the front face of a triangle is rendered. See CullFace for more information.

一个三角形有正反两面。三角形顶点的绕组顺序决定了哪一面是正面。JavaFX选择了逆时针方向的环绕顺序作为正面。在默认情况下,只有三角形的正面会被渲染。

The length of points, normals, and texCoords must be divisible by 3, 3, and 2 respectively. The length of faces must be divisible by 6 if it is of VertexFormat.POINT_TEXCOORD else it must be divisible by 9 if it is of VertexFormat.POINT_NORMAL_TEXCOORD. The values in the faces array must be within the range of the number of vertices in the points array (0 to points.length / 3 - 1) for the point indices, within the range of the number of vertices in the normals array (0 to normals.length / 3 - 1) for the normal indices, and within the range of the number of the vertices in the texCoords array (0 to texCoords.length / 2 - 1) for the texture coordinate indices.

点、法线、纹理坐标的长度必须能被3、3、2整除。如果faces携带VertexFormat.POINT_TEXCOORD属性,那么faces的长度必须能被6整除,如果faces携带VertexFormat.POINT_NORMAL_TEXCOORD属性,那么它的长度必须能被9整除。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程飞翔的专栏

XGBoost 源码阅读笔记 ( 1 ) :代码逻辑结构

XGBoost 是基于 GB 模型框架实现的一个高效,便捷,可扩展的一个机器学习库。本文主要记录了 XGBoost 源码中代码逻辑结构的阅读笔记。

2.3K1
来自专栏GIS讲堂

geotools中泰森多边形的生成

泰森多边形又叫冯洛诺伊图(Voronoi diagram),得名于Georgy Voronoi,是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。

592
来自专栏一棹烟波

OpenGL+OpenCV实现立方体贴图

我屮艸芔茻,转眼就7月份了。 今天试了一下立方体贴图,比较简单,大概说下和平面贴图的区别。 1. 平面贴图需要的是纹理坐标vec2;立方体贴图需要的是一个方向向...

2025
来自专栏数据之美

相似文档查找算法之 simHash 简介及其 java 实现

传统的 hash 算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法。产生的两个签名,如果相等,说明原始内容在一定概 率 下是相...

34510
来自专栏转载gongluck的CSDN博客

FFmpeg菜鸡互啄#第1篇#一些基本概念

播放一个视频文件的流程 ? 封装格式 视频流和音频流按照一定的格式存储在一个文件中。常见的封装格式有mp4、flv、avi、mkv… 视频编码 将视频像素数据(...

3629
来自专栏数据结构与算法

洛谷P1397 [NOI2013]矩阵游戏(十进制矩阵快速幂)

感觉做这题只要对矩阵乘法理解的稍微一点就能做出来 对于每一行构造一个矩阵 A = a 1       0 b 列与列之间的矩阵为 B = c 1       0...

824
来自专栏Petrichor的专栏

leetcode: 62. Unique Paths

842
来自专栏Python

随机验证码

Python生成随机验证码,需要使用PIL模块.python3则是pillow 安装: ? 1 pip3 install pillow ...

1856
来自专栏逍遥剑客的游戏开发

Reconstructing Position From Depth

1403
来自专栏iOSer成长记录

iOS-识别图片中二维码

在iOS的CoreImage的Api中,有一个CIDetector的类,Detector的中文翻译有探测器的意思,那么CIDetector是用来做哪些的呢?它可...

591

扫码关注云+社区