Channy's blog

//Description: Programming_AI_Terrain (自动生成地貌)

//Create Date: 2022-01-28 15:28:39

//Author: channy

概述

目标:根据输入的描述性文字,自动生成游戏中的地形地貌

思路:机器学习GAN模型

参考样例:基于GAN的描述文本生成图像

背景

文本生成图像:VAE(Variational Auto-Encoder),DRAW(Deep Recurrent Attention Writer)以及GAN(GAN-INT-CLS)等

启发:pixray pixray-demo

功能拆分

  1. 根据输入的几何体名称,自动生成基于voxel的sdf数据和网格s

数据准备

参考GAN模型

DF-GAN 根据描述文字生成对应图像

参考数据

ModelNet 训练网络的时候用的是voxel grids格式的数据,shapeNet提供了32×32×32的grid数据以及grid数据相应渲染的结果,里面grid数据是用.binvox格式存储的binvox ,python的读取示例(dimatura/binvox-rw-py),如果想要将mesh数据体素化,可以用 mesh-voxelization工具(FairyPig/mesh-voxelization)。 ShapeNet

我们的数据准备

源码

正在修复bug。。。

reference

近年text-to-image论文及代码

三维上的GAN

地形有关的GAN

PoE-GAN

附录一:binvox文件基本结构

binvox文件由ASCII的文件头和二进制的数据组成

#binvox 1
dim 32 32 32
translate -0.302239 -0.169754 -0.360326
scale 0.720652
data

其中,”#binvox 1”指定版本号,”dim”指定体素网格的size,”translate”和”scale”用于正则化对应的变换,”data”标志文件头结束,往下都是数据。 二进制数据中包含多对数据,每对数据(pair)的首个byte是当前pair的具体数值0或1(1表示该voxel被填充),第二个byte是当前数值被重复多少次[1,255]。
即:binvox是把原voxel的数据生成一个一维的数组,并将重复的点压缩后得到的结果

binvox-rw-py

附录二:mesh-to-sdf

mesh-voxelization

附录三:工具类

pytorch-DCGAN python-library-binary keras