VoxelServer/Laboratory/2DPerlinNoise.ipynb

197 lines
49 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.image as mpimg\n",
"import scipy.ndimage as ndimage\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import random"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2D perlin Noise Generator\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## implementation of Perlin Noise\n",
"\n",
"a simple demonstration how perlin heightmaps can be generated in python"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"n = 6\n",
"raw_noise = np.zeros(shape=(n+1, n+1,2))\n",
"\n",
"# initialize random seed\n",
"np.random.seed(42)\n",
"\n",
"# fill raw noise with random unit vectors\n",
"for i in range(n+1):\n",
" for j in range(n+1):\n",
" # TODO: very inefficient loop!\n",
" x = np.random.normal()\n",
" y = np.random.normal()\n",
" \n",
" # normalize:\n",
" mag = (x**2+y**2)**.5\n",
" x /= mag\n",
" y /= mag\n",
" \n",
" raw_noise[i,j,0] = x\n",
" raw_noise[i,j,1] = y \n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig1, ax1 = plt.subplots()\n",
"\n",
"ax1.imshow(np.linalg.norm(raw_noise, axis=2), cmap='binary')\n",
"#print(img_binary)\n",
"ax1.set_title(\"raw noise map (magnitudes of vectors on unit-circle)\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def lerp(a0, a1, w):\n",
" return a0 + w*(a1 - a0)\n",
"\n",
"def dotGridGradient(ix, iy, x,y):\n",
" dx = x - ix\n",
" dy = y - iy\n",
" \n",
" return dx * raw_noise[ix, iy,0] + dy * raw_noise[ix,iy,1]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def perlin(x,y):\n",
" x0 = int(x)\n",
" y0 = int(y)\n",
" \n",
" x1 = x0 + 1\n",
" y1 = y0 + 1\n",
" \n",
" sx = x - x0\n",
" sy = y - y0\n",
" \n",
" n0 = dotGridGradient(x0,y0,x,y)\n",
" n1 = dotGridGradient(x1,y0,x,y)\n",
" ix0 = lerp(n0,n1,sx)\n",
" \n",
" n0 = dotGridGradient(x0,y1,x,y)\n",
" n1 = dotGridGradient(x1,y1,x,y)\n",
" ix1 = lerp(n0,n1,sx)\n",
" \n",
" return lerp(ix0,ix1,sy)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"perlin_factor = 32\n",
"n_perlin = perlin_factor*n\n",
"perlin_noise = np.zeros(shape=(n_perlin, n_perlin))\n",
"\n",
"for x in range(n_perlin):\n",
" for y in range(n_perlin):\n",
" perlin_noise[x,y] = perlin(x/perlin_factor,y/perlin_factor)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig2, ax2 = plt.subplots()\n",
"\n",
"ax2.imshow(perlin_noise, cmap='binary')\n",
"#print(img_binary)\n",
"ax2.set_title(\"stupid interpolated perlin noise map\")\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}