编辑:我已经决定将纹理应用于球体的一部分是正确的方法,但不知道如何实现它。我本打算提出一个新问题,但我觉得最好让后人来解决这个问题,这样其他人就可以得到帮助。
在这里看到原始问题...
我使用的纹理是使用画布元素创建的图像。将此纹理应用于整个球体很简单,但我尝试将此纹理仅应用于球体的一部分。
我已经能够通过增加画布的尺寸来实现这一点,用透明的空间接壤我的图像。然而,这也增加了纹理的大小,达到了不可接受的大小。透明空间也占用了纹理内存,大多数客户端无法处理创建的纹理大小...尤其是当我试图制作非常小的高分辨率纹理时;因为纹理越小,分辨率越高,我必须将其包裹在透明度越高...
无论如何,很明显,在3D图形中有一种叫做“UV”的东西,它允许做这样的事情。。。我不知道如何在THREEJS中实现这样的解决方案。
这就是我制作纹理/材质的方式:
scene = new THREE.Scene();
geometry = new THREE.SphereGeometry(500, 50, 50);
texture = new THREE.Texture(document.getElementById('myCanvas'));
texture.needsUpdate = true;
material = new THREE.MeshBasicMaterial({
map: texture
});
mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
我如何改变它,使纹理只适用于球体的一部分?
我见过:如何将纹理图像映射到球体的一部分,或者如何剪切(相交)球体表面的矩形?
但是我对三维图形缺乏经验,让我无法理解答案...
在继续这个项目之前,我应该学习更多关于着色器编程的知识吗?
我已经做了一个JSFIDLE来概述这个问题:http://jsfiddle.net/RCmBU/
如何将黑色画布仅应用于由红点指示的球体部分?
在此问题上的任何帮助都将不胜感激。谢谢
使用2张画布:
1从svg到画布
1从画布到较小的画布
编辑:UV决定将其放置在球体上的位置。
根据客户端的功能,您可以使用不同的“细节级别”模型来提供最佳纹理。我不知道这是否适合您的应用程序,但也许值得一看:
LOD示例
我能够使用javascript和three.js库创建一个球体。然而,我有一个图像,我想覆盖在球体的顶部,每当我这样做,球体变成一个黑色的球体,没有图像投射在上面。下面是我如何实现它:var渲染器=new THREE. WebGL渲染器();renderer.set大小(window.inner宽度,window.inner高度);document.body.append(renderer.dom
我有一个OpenGL程序,我想用地球的位图对球体进行纹理处理。我在搅拌器中准备了网格,并将其导出到OBJ文件。该程序加载适当的网格数据(顶点、uv和法线)和正确的位图-我已经用骨骼位图检查了它的纹理立方体。 我的程序是纹理球体,但不正确(或以我不期望的方式)。这个球体的每个三角形都包括这个位图的变形副本。我检查了位图,uv似乎没问题。我尝试了多种尺寸的位图(2的幂,2的倍数等)。 纹理是这样的:
有了这个功能,我可以在Android系统的OpenGL ES 1.0中创建一个球体: 我现在的问题是,我想在球体上使用这个纹理,但是只创建了一个黑色的球(当然,因为右上角是黑色的)。我使用这个纹理坐标是因为我想使用整个纹理: 要正确使用纹理,我需要做什么?
我已经创建了两个球体,目前正在尝试对它们进行纹理处理。然而,纹理坐标似乎有点偏离。 纹理应用于两个球体的结果(你可以忽略不在正方形周围的黑线,这只是相机-是的,这是AR应用程序): 现在,我使用perl脚本导出球体,我发现它将obj文件转换为顶点和纹理代码列表OBJ2OPENGL。obj文件已转换为2160顶点。 当我渲染球体时:
前因后果 问题的起因是和一个群友一起讨论,怎么让地球的背景贴上视频,而且地球展开成平面之后,可以拖动实体位置 由于之前几次示例都用了本地的图片(设置 Cesium.Viewer 的imageryProvider 属性)来作背景,这次我很自然的想到了如果使用本地mp4 作为url的值是否可行,结果实践证明这样不行,查看了一下SingleTileImageryProvider的url属性的官方文档,感
我正在尝试将位图纹理材质放置在由三个贴图创建的网格上。js形状测量学。 几何体是一个简单的八角形(我最终会添加曲线,使其成为一个圆角矩形)。 网格被创建并显示得很好,除了位图纹理显示为四个巨大的正方形,这似乎是加载图像的超复制低分辨率版本。 (加载的图像实际上是法国国旗的512x512照片) 如何获得纹理以使用加载图像的完整分辨率?(顺便说一句,将此纹理作为材质应用于由3.PlaneGeometr