- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个函数可以创建一个简单的 THREE.PlaneGeometry
并使用图像纹理 Material 将图像的一部分映射到平面上。我想弄清楚的是如何从使用 THREE.PlaneGeometry
转换此逻辑到 THREE.PlaneBufferGeometry
,但我无法弄清楚如何以相同的方式访问顶点和更改。
如果这是一个重复的问题,我深表歉意。我确实搜索过,如果存在,我找不到它。
这是函数,下面是它的示例调用:
/**
* options:
* imageSize: { w: #, h: # } - size of the source image
* planeSize: { w: #, h:# } - size of the actual plane to create
* position: { x: #, y:#, z: # } - position of the next plane
* material: material - the material to apply
* clipRect: { x: #, y:#, w: #, h:# } - the part of the image to clip
* x and y from the bottom left of the image.
* w and h width and height of the image region,
* name: name of the mesh
*/
function createPlane( opts ) {
var i, faces, v, vertexes, point, p,
plane = new THREE.PlaneGeometry( opts.planeSize.w, opts.planeSize.h, 1, 1 ),
mesh = new THREE.Mesh(plane, opts.material),
imgRect = {
x: opts.clipRect.x / opts.imageSize.w,
y: opts.clipRect.y / opts.imageSize.h,
w: opts.clipRect.w / opts.imageSize.w,
h: opts.clipRect.h / opts.imageSize.h
};
if (opts.name !== '') {
mesh.name = opts.name;
}
if (opts.position !== null) {
mesh.position.set(
opts.position.x,
opts.position.y,
opts.position.z
);
}
for( i = 0; i < plane.faceVertexUvs.length; i++) {
faces = plane.faceVertexUvs[i];
for( v = 0; v < faces.length; v++) {
vertexes = faces[v];
for( p = 0; p < vertexes.length; p ++ ) {
point = vertexes[p];
point.x = imgRect.x + ( point.x * imgRect.w );
point.y = imgRect.y + ( point.y * imgRect.h );
}
}
}
return mesh;
}
var plane = createPlane({
imageSize: { w: 1024, h: 1024},
planeSize: { w: 23, h: 31 },
position: null,
material: new THREE.MeshBasicMaterial({
map: myTexture, // defined elsewhere
transparent: true
}),
name: 'myPlane',
clipRect: { x: 958, y: 226, w: 23, h: 31 }
});
最佳答案
您可以像这样直接设置它们:object.geometry.attributes.uv.array[0] = 0.1;
另一种方式(我猜将来不太可能打破):
var quad_uvs =
[
0.0, 1.0,
1.0, 1.0,
0.0, 0.0,
1.0, 0.0
];
var uvs = new Float32Array( quad_uvs);
object.geometry.addAttribute( 'uv', new THREE.BufferAttribute( uvs, 2 ) );
关于javascript - ThreeJS r71 - PlaneBufferGeometry 顶点 UV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29583387/
我正在尝试实现凸多边形的正确纹理。我有一个带有 n 个三角形的多边形,对于每个三角形,我正在计算重心坐标,它们是每个三角形的 uv,但在每个三角形的 [0..1] 中,而不是整个多边形。如何插入每个
我目前正在开发一款 map 工具,可以为我的游戏生成自定义 map 。我的网格生成工作得很好,但我看不出如何正确地对我的脸进行 UV 贴图以使纹理保持一致。我已经通过使用相应的坐标对使 UV 贴图在地
我打算编写一个纹理图集管理器,但我遇到了问题。当我修改原始 UV 坐标时,我的程序不再渲染任何内容?这是我的抽奖代码: - (void)drawFrame { [(EAGLView *)self.vi
我有一个 3D 地形(体素网格,我的“任意网格”)。我知道如何从网格上方“拍打”纹理,但在垂直或陡峭的斜坡上它会弄脏。 我可以访问每个顶点的法线和位置。我将如何生成 UV(不使用着色器,因此没有真正的
我有几个 (3-4) 带(基本上是长三角形带),它们共享相同的纹理并且基本上从相同的位置开始。我通过将每一帧的偏移量添加到 V 坐标来垂直滚动该纹理。该偏移量只是我添加到每一帧的一个成员变量(是的,它
在 Android 上为 OpenGL 创建缓冲区时,有什么方法可以为 UV 使用与顶点不同的索引吗? 例如,如果您有 5000 个顶点和 12000 个 UV,并且不希望只为每个唯一的 UV 顶点对
Nginx: PV、UV、独立IP 做网站的都知道,平常经常要查询下网站PV、UV等网站的访问数据,当然如果网站做了CDN的话,nginx本地的日志就没什么意义了,下面就对nginx网站的日志访问
我有从二维形状生成三角形网格的代码。因为在大多数情况下这些形状在表面上的顶点分布不均匀,所以我在生成 UV 时遇到了问题,因此它不会导致纹理失真。任何人都可以推荐一些讨论平面网格上 UV 计算技术的文
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 4 年前。 Improve th
我有一张 UV 贴图: 我想像这样在连接的网格边周围获取纹理像素(以红色选中): 如何使用 Python Blender API 做这样的事情? 最佳答案 制作“UV”bmesh 给定上面带有 UV
摘要 我正在尝试将位移贴图(高度贴图)应用于一个相当简单的对象(六角形平面),并且得到了一些意想不到的结果。我使用的是灰度,因此,我的印象是我的高度图应该只影响网格的 Z 值。然而,我创建的置换贴图在
我有一张 UV 贴图: 我想像这样在连接的网格边周围获取纹理像素(以红色选中): 如何使用 Python Blender API 做这样的事情? 最佳答案 制作“UV”bmesh 给定上面带有 UV
在对多重采样纹理进行采样时,我们必须使用整数坐标,即 ivec2 Texcoord = ivec2(textureSize(texsampler) * In.Texcoord); vec4 color
我正在尝试将纹理应用于我的 .md2 模型。我使用 Gouraud 着色给它上色(底部/顶部平面三角形的标准算法),我必须使用类似的代码来处理纹理坐标 U 和 V。但我真的不明白如何对它们进行插值。从
这个问题在这里已经有了答案: When is @uncheckedVariance needed in Scala, and why is it used in GenericTraversableT
我不知道“膨胀”是否是正确的术语,但这是我现在能想到的全部。我正在尝试沿着三角形 strip 映射一个 1 像素宽(尽管从技术上讲每个纹理都会有这个问题)的图像来模拟激光。当它完全均匀且正方形时,它看
我正在尝试为我在代码中生成的网格计算 uv。这是一个非常简单的圆圈 (2d) 我想像下面这样构造它 并将此代码用于 uvs uvs[i] = new Vector2((verts[i].x+radiu
我正在使用三个 v.73我有来自 raycaster 交叉点的 UV 坐标。我也有这个物体的纹理。我怎样才能在 UV 坐标处获得所用纹理的颜色(RGB 或 RGBA)? 我曾尝试使用从纹理中获取图像的
假设我们有一个 3D 网格,每个顶点都有纹理坐标,所以如果我渲染它展开,我会得到这样的东西(忽略红色方 block ): 现在我正在尝试找到合适的算法来使用顶点 UV 唯一标识这些区域并存储具有此唯一
我正在尝试在 Unity 中更改和调整放置在 bilt-in 立方体面上的纹理。没有任何问题,我设法用这段代码在每张脸上放置不同的图像: void Start() { Mesh mesh =
我是一名优秀的程序员,十分优秀!