首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Open3D场景渲染器render_to_image返回黑色屏幕

Open3D场景渲染器render_to_image返回黑色屏幕
EN

Stack Overflow用户
提问于 2022-04-21 08:50:15
回答 1查看 886关注 0票数 3

我试图渲染一个场景,其中只包含一个网格的obj文件和材料文件。当我试着看的时候

代码语言:javascript
运行
复制
o3d.visualization.draw([{
    "name": "Model",
    "geometry": model,
    "material": mat
}])

但是当我试图用下面的代码渲染相同的场景时,输出图像只是黑色的。我什么都试过了,但现在似乎什么都没起作用。

代码语言:javascript
运行
复制
import numpy as np
import open3d as o3d
import cv2

def main():
    render = o3d.visualization.rendering.OffscreenRenderer(640, 480)
    model, mat=getModel()
    render.scene.set_background([0, 0, 0, 0])
    render.scene.add_geometry("model", model, mat)
    render.scene.set_lighting(render.scene.LightingProfile.NO_SHADOWS, (0, 0, 0))
    render.scene.camera.look_at([0, 0, 0], [0, 10, 0], [0, 0, 1])
    img_o3d = render.render_to_image()
    o3d.io.write_image("mtest2.jpeg", img_o3d, 9)
    img = np.array(img_o3d)
    cv2.imshow("model", img)
    cv2.waitKey(1)

def getModel():

    model_name = "mouse.obj"
    model = o3d.io.read_triangle_mesh(model_name)
    material = o3d.visualization.rendering.MaterialRecord()
    material.shader = "defaultLit"
    albedo_name = "albedo.jpeg"
    material.albedo_img = o3d.io.read_image(albedo_name)
    return (model, material)

main()

EN

Stack Overflow用户

发布于 2022-04-28 18:43:00

我也确定这是因为你的相机没有看到物体。

第一方法

在您的渲染中,请尝试更改位置。就像这样

代码语言:javascript
运行
复制
render.scene.camera.look_at([0, 0, 0], [0, 0, -800], [0, 1, 0])

记住,第一个参数是查看的位置,第二个参数是摄像机的位置(必须足够远,可以看到物体),第三个参数是相机的方向。

您的代码的其余部分都很好,我已经测试了它来呈现一些图像。

第二方法

另外,对于任何方向,寻找相机位置都有很大的帮助,那就是使用视觉工具。使用鼠标导航并找到要呈现的位置,然后按p按钮。这将在一个名为ScreenCamera_<somedate>.json的目录中保存一个JSON文件。

为您使用交互式可视化工具的示例

代码语言:javascript
运行
复制
render = o3d.visualization.Visualizer()
render.create_window()
model, mat = getModel()
render.add_geometry(model)
render.run()

然后,如果您想重用针孔相机配置,稍后在您的屏幕外渲染,这样做。

代码语言:javascript
运行
复制
parameters = o3d.io.read_pinhole_camera_parameters("ScreenCamera_<somedate>.json")
render.setup_camera(parameters.intrinsic, parameters.extrinsic)
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71951525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档