标签: texture-mapping

在服务器上的批处理中将纹理映射到3D对象

我们有以下用例:

  1. 用户在Web服务器上上传她的照片
  2. 稍后 - 在服务器上 - 图片被映射到预定义的3D对象上并存储为普通图像(png,jpeg,...).现在只是前视图.会话结束后,文件将被删除.
  3. 将它们显示在普通的img标签中给用户

为了支持这一点,我想到了以下过程:

一个.3d模型离线创建并上传到服务器
b.实时地,纹理映射在服务器
c上完成.生成的3D模型视图保存到临时文件
d.该文件显示在img标记中

所以现在问题:

您对支持此类流程的工具有何建议?他们运行的操作系统并不重要.步骤b.和c.应该很快.

所以这些工具的要求是​​:
对于3D建模器:
- 开源
- 易于使用
- 以下一步中使用的库可读的格式保存模型

对于图形库:
- 开源
- 易于使用
- 易于使用资源(以及图形密集型应用程序可以:))
- 读取建模器生成的文件
- 应用纹理
- 保存生成对象的视图+纹理到要在浏览器中显示的普通文件.

谢谢.

3d textures web-applications texture-mapping

5
推荐指数
1
解决办法
843
查看次数

OpenGL纹理映射

嘿伙计们,我是游戏编程和图形编程的新手.但是,我急切地希望学习,所以我已经开始用OpenGL构建游戏引擎.我已经实现了所有基本的图形功能,现在我想为我的三角形网格添加纹理支持.

我能找到的纹理映射的唯一教程是针对单个多边形 - 如何定义包裹整个网格的纹理?

我使用lib3ds(http://code.google.com/p/lib3ds/)从.3ds文件加载网格..3ds文件带有一些纹理坐标数据吗?

谢谢!

c++ opengl 3ds texture-mapping uv-mapping

5
推荐指数
1
解决办法
2416
查看次数

在OpenGL中如何在GPU上访问纹理数据?

我不完全理解在GPU上访问纹理数据的方式.如果可能的话 - 有人能解释一下吗?

  1. 当纹理单元的数量有限时,这是否会限制我可以使用生成的纹理数量glGenTextures()并使用上传到GPU glTexImage2D()?或者它只限制可以绑定的纹理单元的数量glBindTexture()

  2. 我真正想做的是能够将我的所有纹理上传到GPU - 即使有超过可用纹理单元的数量.当需要纹理时,我只需使用它将其绑定到纹理单元glBindTexture().这可能吗?

opengl texture-mapping glteximage2d multitexturing

5
推荐指数
1
解决办法
352
查看次数

Opengl几何着色器整数纹理提取失败

我正在尝试从GeForce 330m上运行的几何着色器中采样整数纹理.它似乎返回其他值而不是我加载到纹理中.我使用这个代码(基本上)来创建和加载纹理:

glGenTextures( 1, &textureId );
glBindTexture( GL_TEXTURE_2D, textureId );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32I, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glBindTexture( GL_TEXTURE_2D, 0);
glBindTexture( GL_TEXTURE_2D, textureId );
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32I, w, h, 0, GL_RGBA, GL_INT, <some 0-initialized large enough buffer>);
glBindTexture( GL_TEXTURE_2D, 0);
glBindTexture( GL_TEXTURE_2D, textureId );
    int data[] = { 3, 0, 36, 400 };
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 3, 1, 1, GL_RGBA, GL_INT, data);
glBindTexture( GL_TEXTURE_2D, 0);
Run Code Online (Sandbox Code Playgroud)

想法是将特定的一个像素设置为具有400的w值.然后我在几何着色器中使用它:

#version 330 …
Run Code Online (Sandbox Code Playgroud)

opengl integer texture-mapping geometry-shader opengl-3

5
推荐指数
1
解决办法
964
查看次数

正确的glsl仿射纹理映射

我正在尝试在GLSL中编码正确的2D仿射纹理映射.

说明:

...没有这个图像对我的目的是正确的.右(标记为正确)具有我不想要的透视校正.所以这个:了解Q纹理坐标解决方案(没有进一步的改进)并不是我想要的.

我想简单地在四边形内"拉伸"纹理,如下所示:

在此输入图像描述

但是由两个三角形组成.有什么建议(GLSL)好吗?

opengl math glsl texture-mapping

5
推荐指数
2
解决办法
6294
查看次数

如何在纹理中使用OpenGL LOD?

如何GL_TEXTURE_MIN_LOD,GL_TEXTURE_MAX_LODLOD_BIAS工作?

为了在视觉上检查,我已经使用mipmapping创建了6*6纹理,并且对于值> 0.5,MIN_LOD我获得了3*3纹理,而不管其值是多少MAX_LOD.如果我改变LOD_BIAS它不会影响我的o/p.我无法弄清楚它是如何工作的.

可以通过陈述一个例子来解释吗?

编辑:我手动创建mipmap级别,以便我可以观察它正在拾取的级别.这是我的代码:

glTexImage2D(target, 0, GL_RGBA,9 ,9, 0, GL_RGBA, GL_BYTE,subpix);
glTexImage2D(target, 1, GL_RGBA,4 ,4, 0, GL_RGBA, GL_BYTE,&subpix[4]);
glTexImage2D(target, 2, GL_RGBA,2 ,2, 0, GL_RGBA, GL_BYTE,&subpix[10]);
glTexImage2D(target, 3, GL_RGBA,1 ,1, 0, GL_RGBA, GL_BYTE,&subpix[18]);
glSamplerParameterf(sampler,GL_TEXTURE_MIN_LOD,0.862);
glSamplerParameterf(sampler,GL_TEXTURE_MAX_LOD,0.99);
glSamplerParameterf(sampler,GL_TEXTURE_LOD_BIAS,0.0);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望它将采用2*2的第二个mipmap级别,但它选择4*4的第一个mipmap级别.当我设置min lod <0.5时,它取0级9*9.并且无论设置为max lod的值如何,都会发生这种情况.

opengl textures texture-mapping

5
推荐指数
1
解决办法
6368
查看次数

如何将纹理应用于Three.js中的自定义几何体

我成功地将纹理应用于立方体几何体:

var geometry = new THREE.CubeGeometry(10, 10, 10);
var meshMaterial = new THREE.MeshPhongMaterial({ transparent: false, map: THREE.ImageUtils.loadTexture('/app/images/wood.jpg') });
meshMaterial.side = THREE.DoubleSide;
var mesh = new THREE.Mesh(geometry, meshMaterial);
Run Code Online (Sandbox Code Playgroud)

有了这个我得到一个很好的纹理立方体像这样:

在此输入图像描述

现在我想将相同的纹理(512x512 jpg图像)应用到我从STL加载的自定义模型中,这就是我得到的(在这种情况下是金字塔):

在此输入图像描述

这是代码:

loader.load(jsonParam.url, function (geometry) {
            var meshMaterial = new THREE.MeshPhongMaterial({ transparent: false, map: THREE.ImageUtils.loadTexture('/app/images/wood.jpg') });
            meshMaterial.side = THREE.DoubleSide;

            var mesh = new THREE.Mesh(geometry, meshMaterial);

            mesh.castShadow = false;
            mesh.receiveShadow = true;
            scene.add(mesh);
        });
Run Code Online (Sandbox Code Playgroud)

为什么没有应用纹理,我只得到纹理颜色的平均值?

texture-mapping three.js

5
推荐指数
1
解决办法
1万
查看次数

如何在 OpenGL 中标准化纹理空间的图像坐标?

假设我有一张尺寸为320x240的图像。现在,从sampler2D具有整数图像坐标的采样中ux, uy,我必须对[0,大小]范围内的纹理坐标进行标准化(大小可以是宽度或高度)。

现在,我想知道我是否应该像这样正常化

texture(image, vec2(ux/320.0, uy/240.0))
Run Code Online (Sandbox Code Playgroud)

或者像这样

texture(image, vec2(ux/319.0, uy/239.0))
Run Code Online (Sandbox Code Playgroud)

因为ux = 0 ... 319uy = 0 ... 239后一个实际上会覆盖[0, 1]的整个范围,对吗?这意味着0对应于例如最左边的像素,1对应于最右边的像素,对吧?

另外我想保持过滤,所以我不想使用texelFetch.

谁能告诉我一些关于这个的事情吗?谢谢。

opengl textures glsl texture-mapping

5
推荐指数
2
解决办法
7829
查看次数

如何将彩色点云转换为纹理网格?

我有一个 .ply 文件,其中包含彩色点云:

青蛙点云

我需要将其转换为纹理网格。我可以创建一个空白网格:

过滤器 -> 点集 -> 曲面重建:泊松

但结果是白色的网格

青蛙网

似乎所有有关颜色的信息都丢失了。有什么建议吗?谢谢

mesh texture-mapping point-clouds meshlab

5
推荐指数
1
解决办法
7109
查看次数

将图像映射到球体上并绘制3D轨迹

我想要做的是在我的3D坐标系的中心定义一个球体(半径= 1),将圆柱形行星地图包裹在球体表面上(即在球体上执行纹理映射)并绘制围绕该球体的3D轨迹.物体(如卫星轨迹).有什么方法可以使用matplotlib或mayavi来做到这一点吗?

python plot texture-mapping mayavi

5
推荐指数
1
解决办法
2171
查看次数