1 前言
最近Genesis
又更新了一次,官方说已经支持在Windows
上进行渲染了。之前因为不支持在Windows
上渲染,会触发function glGetUniformLocation not found
问题。于是我们在wsl2
中搭建了Genesis
的开发环境,并解决了一系列问题,有兴趣的同学可以参考windows wsl linux环境下搭建 Genesis 引擎开发环境。那么本篇我们来讲一讲如何在Windows
上搭建Genesis的开发环境。
本文所有版本概览:
Annoconda:23.1.0
PyTorch:2.5.1+cu124
Python:3.9.21
NVIDIA driver:555.85
CUDA:12.4
Genesis:0.2.1
2 安装conda
去conda
官网选择windows
版本下载安装,不停的点下一步就OK。下载地址
https://www.anaconda.com/download/success
安装成功后打开conda
的配置文件,配置清华镜像源,否则下载速度很慢。路径为:C:\Users\你的用户名\.condarc
,如果文件不存在就自己手动创建一个。
粘贴地址并保存
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
然后在开始菜单中打开conda
终端
输入以下命令创建一个新的python环境, -n
参数表示环境名,我这里就取名叫genesis
conda create -n genesis python=3.9
3 安装/更新NVIDIA驱动
到NVIDIA
官网下载适合自己显卡的驱动,下载地址
https://www.nvidia.cn/drivers/lookup/
如果不知道自己的电脑是什么显卡,可以在任务管理器中查看。
4 安装CUDA
到NVIDIA
官网选择适合自己系统的CUDA
安装包,下载地址
https://developer.nvidia.com/cuda-12-4-1-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local
5 安装Pytorch
我们之前已经讲过了如何在windows
上安装Pytorch
,感兴趣的同学可以移步windows环境下pytorch安装踩坑。
先去浏览器或者迅雷里下载安装包,迅雷比较快。
https://download.pytorch.org/whl/cu124/torch-2.5.1%2Bcu124-cp39-cp39-win_amd64.whl
由于第一步创建了一个genesis
环境,先激活这个环境
conda activate genesis
我下载到了D
盘,然后通过pip
安装,注意:不要有中文路径
pip install D:\torch-2.5.1+cu124-cp39-cp39-win_amd64.whl
完成安装后验证一下torch
环境是否可用了,出现True
就表示可用了。
conda activate genesis
python
import torch
torch.cuda.is_available()
exit()
6 安装Genesis
执行以下命令进行安装,第一步是激活环境,第二步是安装Genesis
conda activate genesis
pip install genesis-world
现在来下载Genesis
的源码,可以用git
,也可以下载压缩文件,下载地址
https://github.com/Genesis-Embodied-AI/Genesis
下载完毕后,拷贝genesis
目录下的所有文件,覆盖了我们conda
环境下的genesis
。比如我下载完源码的路径如下,复制所有文件。
覆盖conda
环境下的genesis
,默认路径如下,注意改为自己的路径
C:\Users\zhangiser\anaconda3\envs\genesis\Lib\site-packages\genesis
7 运行Hello Genesis
用vscode
打开我们下载的源码,Ctrl+Shift+P
,选择我们之前创建的conda
环境, 右键Hello Genesis
运行。
8 问题
8.1 function glGetUniformLocation not found
说明你不是最新的代码,最新的代码这个问题已经被修复了,仔细观察报错信息,发现调用的是conda
环境下的site-package
目录下的genesis
,并不是源码里的genesis
,参考我们步骤5使用源码替换conda
环境下的genesis
即可。
8.2 TypeError: SimpleNonJITRenderer.shadow_mapping_pass() got an unexpected keyword argument ‘env_idx’
最近有不少同学都反馈了这个问题,这是近期Genesis
的一次更新中的bug
,解决这个问题只需要把之前旧版本的genesis
源码替换了conda
环境下的Lib\site-packages\genesis
就可以了。这个旧版本现在不太好找,因为commit
太多了,这里直接给出我使用的旧版本源码,需要的同学可自取。
链接: https://pan.baidu.com/s/1cK4OvDawTp-3Wg4OpmaR6w 提取码: kybx
8.3 cannot import name ‘_replay’ from partially initialized module ‘genesis.ext.fast_simplification’ (most likely due to a circular import)
解决方案,同8.2
,这也是新版本的bug,用老版本的源码替换了conda里genesis就可以了。
重要的话说三遍,尽量用老版本的源码替换conda环境里的genesis,能解决99%的环境问题。
重要的话说三遍,尽量用老版本的源码替换conda环境里的genesis,能解决99%的环境问题。
重要的话说三遍,尽量用老版本的源码替换conda环境里的genesis,能解决99%的环境问题。
9 总结
在Windows
上运行Genesis
,比在Windows
上的linux
系统里(即wsl
)运行Genesis
,配置简单的太多了。毕竟我们在wsl
里运行的时候会遇到各种问题,参考我们之前的博文里解决了十几个问题才最终跑起来。希望这个框架尽快能出和UE
类似的渲染引擎。之前看周衔博士直播的时候说他们并不打算使用UE
来进行渲染,而是打算自己写一个渲染引擎。如果到时候这个渲染引擎再集成一下Cesium
的插件,那就更完美了,重量级的UE
就可以下岗了,轻量级的Genesis
上线,yyds
。
另外多说一句,作者建了一个群,有想加的同学可以公众号回复Genesis交流群,本文就讲到这里了,回见~