我们有以下用例:
为了支持这一点,我想到了以下过程:
一个.3d模型离线创建并上传到服务器
b.实时地,纹理映射在服务器
c上完成.生成的3D模型视图保存到临时文件
d.该文件显示在img标记中
所以现在问题:
您对支持此类流程的工具有何建议?他们运行的操作系统并不重要.步骤b.和c.应该很快.
所以这些工具的要求是:
对于3D建模器:
- 开源
- 易于使用
- 以下一步中使用的库可读的格式保存模型
对于图形库:
- 开源
- 易于使用
- 易于使用资源(以及图形密集型应用程序可以:))
- 读取建模器生成的文件
- 应用纹理
- 保存生成对象的视图+纹理到要在浏览器中显示的普通文件.
谢谢.
嘿伙计们,我是游戏编程和图形编程的新手.但是,我急切地希望学习,所以我已经开始用OpenGL构建游戏引擎.我已经实现了所有基本的图形功能,现在我想为我的三角形网格添加纹理支持.
我能找到的纹理映射的唯一教程是针对单个多边形 - 如何定义包裹整个网格的纹理?
我使用lib3ds(http://code.google.com/p/lib3ds/)从.3ds文件加载网格..3ds文件带有一些纹理坐标数据吗?
谢谢!
我不完全理解在GPU上访问纹理数据的方式.如果可能的话 - 有人能解释一下吗?
当纹理单元的数量有限时,这是否会限制我可以使用生成的纹理数量glGenTextures()并使用上传到GPU glTexImage2D()?或者它只限制可以绑定的纹理单元的数量glBindTexture()?
我真正想做的是能够将我的所有纹理上传到GPU - 即使有超过可用纹理单元的数量.当需要纹理时,我只需使用它将其绑定到纹理单元glBindTexture().这可能吗?
我正在尝试从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) 我正在尝试在GLSL中编码正确的2D仿射纹理映射.
说明:

...没有这个图像对我的目的是正确的.右(标记为正确)具有我不想要的透视校正.所以这个:了解Q纹理坐标解决方案(没有进一步的改进)并不是我想要的.
我想简单地在四边形内"拉伸"纹理,如下所示:

但是由两个三角形组成.有什么建议(GLSL)好吗?
如何GL_TEXTURE_MIN_LOD,GL_TEXTURE_MAX_LOD和LOD_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的值如何,都会发生这种情况.
我成功地将纹理应用于立方体几何体:
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)
为什么没有应用纹理,我只得到纹理颜色的平均值?
假设我有一张尺寸为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 ... 319且uy = 0 ... 239。后一个实际上会覆盖[0, 1]的整个范围,对吗?这意味着0对应于例如最左边的像素,1对应于最右边的像素,对吧?
另外我想保持过滤,所以我不想使用texelFetch.
谁能告诉我一些关于这个的事情吗?谢谢。
我有一个 .ply 文件,其中包含彩色点云:
我需要将其转换为纹理网格。我可以创建一个空白网格:
过滤器 -> 点集 -> 曲面重建:泊松
但结果是白色的网格
似乎所有有关颜色的信息都丢失了。有什么建议吗?谢谢
我想要做的是在我的3D坐标系的中心定义一个球体(半径= 1),将圆柱形行星地图包裹在球体表面上(即在球体上执行纹理映射)并绘制围绕该球体的3D轨迹.物体(如卫星轨迹).有什么方法可以使用matplotlib或mayavi来做到这一点吗?
texture-mapping ×10
opengl ×6
textures ×3
glsl ×2
3d ×1
3ds ×1
c++ ×1
glteximage2d ×1
integer ×1
math ×1
mayavi ×1
mesh ×1
meshlab ×1
opengl-3 ×1
plot ×1
point-clouds ×1
python ×1
three.js ×1
uv-mapping ×1