问题标签 [pyrender]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 PyRender 或类似的 Python 库手动纹理网格?
我有一个房间的部分网格,我试图用从它的特定相机视图拍摄的图像来纹理化。我pyrender
用来做渲染。.obj
如果我从已经纹理化的文件中加载网格,渲染会正确显示纹理。但是,当我采用无纹理网格并尝试添加单个图像纹理时,它会呈现为纯色。
这是我用于获取网格顶点/面并构建纹理 pyrender 网格对象的代码:
如果给定文件中带有纹理的网格,则渲染管道的其余部分可以正常工作.obj
。事实上,我知道所有顶点的uv
坐标都在图像边界内,但并非所有图像都被使用(因为网格有一些间隙)。关于这里可能出了什么问题的任何想法,或者关于如何使用另一个库对网格进行纹理化的任何建议?
谢谢!
scene - pyrender ValueError:网格已经绑定到上下文
我的任务是为给定的样本大小渲染图像。首先,我在 pyrender 场景中添加 5 个网格,渲染图像,然后从场景中移除网格。对于给定的样本大小,继续此迭代。但是,在第二个循环中,我收到了这个错误
ValueError: Mesh is already bound to a context
谁能帮我理解这个错误的含义以及如何纠正这个错误?谢谢你。
python - 使用 pyreder/pyglet/openGL 将 3d 顶点映射到像素
我正在使用图像实现 3d 点估计的新算法,现在我正在尝试在 3d 虚拟模型上对其进行测试,然后再转向真实对象。
算法输入是最后一次转换为视口大小之前的像素,因此要在渲染图像上测试算法,我需要知道形状中像素的反向转换([0,witdh],[0,height])。
我正在使用 pyrender 库中的透视投影来渲染 3d 网格的 2d 图像,据我所知,这个库使用 OpenGL 方法进行渲染。
示例:我有一个尺寸=(3,1,5), center=(0,0,0) 的盒子网格,并且我有投影和视图矩阵
这是我将 3d 点/顶点映射到像素的计算:
当 viewport_sizes=(width,height)=(512,512)
结果=
[150.86775635, 4.28475523, 1.00894365, 1. ]
= (151,4)
当 pyrender 对该顶点的实际结果是像素时 ~ (90,342)
如果有人知道 pyrender/OpenGL 幕后的实际过程,或者知道如何正确映射像素,那将非常有帮助。
顺便说一句:当库使用左上映射时,我知道我的函数使用左下映射,但它仍然给出了意外的输出。
pyrender - 如何从 pyrender 中的 3d 世界坐标中获取像素坐标
使用 pyrender,当已知以下内容时,如何获取 3d 世界坐标的像素坐标:
pyrender.OrthographicCamera
实例pyrender.OffscreenRenderer
带有参数 offscreen_width 和 offscreen_height 的实例- 要映射到屏幕/图像的点的 xyz 世界坐标
我找到了一个声称与 相关的stackoverflow 答案pyrender
,但我不知道如何获取该答案的方法参数 ( projection
& view
) 的值。
任何帮助表示赞赏!
python - 用于 distroless 的 pyrender 容器多阶段构建
我有以下多阶段构建将 pyrender 添加到 distroless continer
如果我在里面运行 pyrenderdebian:11-slim
它一切正常但是当我将库移动到 distroless 并尝试运行时import pyrender
我得到
或者
我确实将环境变量设置为os.environ['PYOPENGL_PLATFORM'] = 'egl'
关于我做错了什么的任何指示?我想用 distroless 而不是 debian 映像运行它。