安装pyrender和OSMesa

1)安装 pyrender

Pyrender是一个基于OpenGL的库,可以加载和渲染三维网格、点云、相机等对象3。

pip install pyrender

2)理解PyOpenGL和OSMesa的关系是:

PyOpenGL是Python的OpenGL绑定库(接口壳子),它提供了在Python中使用OpenGL的接口。

OSMesa是OpenGL的一个实现,它允许在没有图形硬件的系统上进行OpenGL渲染,通常用于离屏渲染。OSMesa实现了OpenGL的API,但不需要图形硬件,渲染是通过软件模拟来完成的。

PyOpenGL可以使用OSMesa作为其后端之一,来在没有GPU的系统上进行OpenGL渲染。

下面的安装参考官方连接的翻译:Installation Guide — pyrender 0.1.45 documentation

3)安装 OSMesa

第一步,您需要重建并重新安装 Mesa,以支持快速离屏渲染和 OpenGL 3+ 上下文。我建议从源代码安装,但您也可以.deb 在 Ubuntu 16.04 及更高版本上尝试我的安装。

从源头构建

首先,通过apt或系统的包管理器安装构建依赖项。

sudo apt-get install llvm-6.0 freeglut3 freeglut3-dev

然后,从此处下载 Mesa 的当前版本。解压源码并进入源码文件夹:

tar xfv mesa-18.3.3.tar.gz
cd mesa-18.3.3

替换PREFIX为您要安装 Mesa 的路径。如果您不担心覆盖默认的 Mesa 安装,那么/usr/local.

现在,通过运行以下命令来配置安装:

./configure --prefix=PREFIX                                   \--enable-opengl --disable-gles1 --disable-gles2   \--disable-va --disable-xvmc --disable-vdpau       \--enable-shared-glapi                             \--disable-texture-float                           \--enable-gallium-llvm --enable-llvm-shared-libs   \--with-gallium-drivers=swrast,swr                 \--disable-dri --with-dri-drivers=                 \--disable-egl --with-egl-platforms= --disable-gbm \--disable-glx                                     \--disable-osmesa --enable-gallium-osmesa          \ac_cv_path_LLVM_CONFIG=llvm-config-6.0

最后,构建并安装 Mesa。

make -j8
make install

~/.bashrc最后,如果您没有在系统路径中安装 Mesa,请在更改MESA_HOME为 mesa 安装路径(即您 PREFIX在配置命令期间使用的路径)后,将以下行添加到您的文件中。

MESA_HOME=/path/to/your/mesa/installation
export LIBRARY_PATH=$LIBRARY_PATH:$MESA_HOME/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MESA_HOME/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:$MESA_HOME/include/
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$MESA_HOME/include/

安装 PyOpenGL 的兼容分支

接下来,安装并使用我的PyOpenGL. 该分支允许使用 OSMesa 获取现代 OpenGL 上下文。我的补丁已包含在 中PyOpenGL,但尚未在 PyPI 上发布。

git clone https://github.com/mmatl/pyopengl.git
pip install ./pyopengl

如何使用

PYOPENGL_PLATFORM=osmesa python render.py
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/45248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码部署到服务器

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

uniapp 企业微信侧边栏开发网页授权 注入企业权限 注入应用权限 获取userid(2)

1、网页授权,获取code 代码: oauthUrl() {const that thisuni.removeStorageSync(code)let REDIRECT_URI encodeURIComponent(window.location.href)let CORPID webConfig.appIdlet url https://open.weixin.qq.com/connect/oauth2/authorize?appi…

Flink-----Yarn应用模式作业提交流程

Yarn应用模式作业提交流程 在Yarn当中又分为Session,PerJob,Application,建议和推荐使用独立集群的,其中就包含PerJob 和Application,但是1.17版本的Flink已将PerJob标记为过时,并且Application可以解决Pe…

AI绘画之三_StableDiffusion_界面操作

1 介绍 首先,介绍界面中的重要元素,如图所示: 基础模型:基础模型是最重要的设置项文生图:选项卡列出了各大功能,文生图指通过文字生成图片图生图:图生图指通过图片和文字生成图片修复照片&am…

sql类型-用户定义表类型

一、创建用户定义表类型String_Table_Type CREATE TYPE String_Table_Type AS TABLE ( Id nvarchar(200) NOT NULL ) GO DECLARE test String_Table_Type INSERT INTO test VALUES(a),(b),(c) SELECT * FROM test 二、SqlSugar中使用

【IMX6ULL驱动开发学习】06.DHT11温湿度传感器驱动程序编写与测试

一、DHT11简介 DHT11是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器,会测量空气中湿度,再根据测量结果决定是否继续加湿。 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,具有超小体积、极低功耗的特点…

银行客户关系管理系统springboot财务金融进销存java jsp源代码

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 银行客户关系管理系统springboot 系统有1权限&#x…

Jetpack系列-ViewModel的使用及原理浅析

作者:碎星 简介 ViewModel在架构中用于承载业务逻辑和作为容器保存屏幕状态,它可以缓存界面的状态,并且能在配置变更后持久保留相应的界面状态。 在jetpack套件中,ViewModel随lifecycle一起提供。 优势 简介 ViewModel在架构…

第5步---MySQL的DQL查询语句

第5步---MySQL的DQL查询语句 DQL 数据库查询语言 1.基本的查询语句 1.完整得查询得语句 简化版的查询语句 select * from 表名 where 条件; 2.创建用于测试的表 1.创建测试数据 -- DQL -- 创建测试表 DROP TABLE IF EXISTS product; CREATE TABLE IF NOT EXISTS product( pi…

一文详解4种聚类算法及可视化(Python)

在这篇文章中,基于20家公司的股票价格时间序列数据。根据股票价格之间的相关性,看一下对这些公司进行聚类的四种不同方式。 苹果(AAPL),亚马逊(AMZN),Facebook(META&…

计算机毕设项目之基于django+mysql的疫情实时监控大屏系统(前后全分离)

系统阐述的是一款新冠肺炎疫情实时监控系统的设计与实现,对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系统的整体…

多线程实现与管理

进程与线程 进程 : 进程是操作系统进行资源分配的最小单位,每执行一个程序、一条命令操作系统都会启动一个进程,进程是一个程序的执行过程,当程序启动时,操作系统会把进程的代码加载到内存中,并为新进程分配…

uni-app根据经纬度逆解析详细地址

uni-app中的getLocation()方法可以获取到用户当前的地理位置(经纬度)、速度。 但是返回参数中的address在app中才会显示,小程序中不会显示,所以我们需要进行逆解析其地址,解析出它的地址信息。 1.首先要在腾讯位置服务…

如何正确地设置Outlook SMTP发送电子邮件(wordpress配置)

如何正确地设置Outlook SMTP发送电子邮件(wordpress配置) 作者:虚坏叔叔 博客:https://pay.xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 正在寻找正确的Outlook SMTP设置&#xff1f…

LRU 算法

LRU 缓存淘汰算法就是一种常用策略。LRU 的全称是 Least Recently Used,也就是说我们认为最近使用过的数据应该是是「有用的」,很久都没用过的数据应该是无用的,内存满了就优先删那些很久没用过的数据。 力扣(LeetCode&#xff09…

自动方向识别式 TXB型电平转换芯片

大家好,这里是大话硬件。 在上一篇文章分析了LSF型的电平转换芯片,LSF型电平转换芯片最常见是应用在I2C总线上。I2C为OD型总线,LSF使用时增加电阻。 对于不是OD型总线的电平转换,比如UART,SPI,普通GPIO口信号,这些信号在进行双向电平转换使用什么样的芯片呢? 从上面…

面试之快速学习STL-deuqe和list

1. deque deque 容器用数组(数组名假设为 map)存储着各个连续空间的首地址。也就是说,map 数组中存储的都是指针如果 map 数组满了怎么办?很简单,再申请一块更大的连续空间供 map 数组使用,将原有数据&…

每天一道leetcode:433. 最小基因变化(图论中等广度优先遍历)

今日份题目: 基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 A、C、G 和 T 之一。 假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。 例如,&quo…

博弈论 | 斐波那契博弈

斐波那契博弈 博弈论是二人或多人在平等的对局中各自利用对方的策略变换自己的对抗策略,达到取胜目标的理论。博弈论是研究互动决策的理论。博弈可以分析自己与对手的利弊关系,从而确立自己在博弈中的优势,因此有不少博弈理论,可以帮助对弈者分析局势,从而采取相应策略,最终达…

计算机提示mfc120u.dll缺失(找不到)怎么解决

在计算机领域,mfc120u.dll是一个重要的动态链接库文件。它包含了Microsoft Foundation Class (MFC) 库的特定版本,用于支持Windows操作系统中的应用程序开发。修复mfc120u.dll可能涉及到解决与该库相关的问题或错误。这可能包括程序崩溃、运行时错误或其…