Added an image as a texture to each cube.
This commit is contained in:
82
GenerateMitImage.py
Normal file
82
GenerateMitImage.py
Normal file
@@ -0,0 +1,82 @@
|
||||
#Imports.
|
||||
import bpy;
|
||||
import random;
|
||||
|
||||
# Variables:
|
||||
# Size of each cube.
|
||||
size = 1;
|
||||
# Setting the x, y, and z positions.
|
||||
x = y = z = size / 2;
|
||||
# Setting the number of cubes in each coordinate.
|
||||
xNum = 3;
|
||||
yNum = 3;
|
||||
zNum = 3;
|
||||
# Setting the initial value for the number of cubes in each recursive call.
|
||||
cubeCount = 0;
|
||||
# Setting the maximum amount of cubes that is needed to be created.
|
||||
numOfCubes = xNum * yNum * zNum;
|
||||
# print(numOfCubes);
|
||||
|
||||
#Function to clean the scene. This removes all of the objects, collections, materials, particles, textures, images, curves, meshes, actions, nodes, and worlds from the scene.
|
||||
def cleanScene():
|
||||
# Changes the mode to object mode if it is in Edit mode.
|
||||
if (bpy.context.active_object and bpy.context.active_object.mode == "EDIT"):
|
||||
bpy.ops.object.editmode_toggle();
|
||||
|
||||
# Checks for hidden stuff and unhides them.
|
||||
for obj in bpy.data.objects:
|
||||
obj.hide_set(False);
|
||||
obj.hide_select = False;
|
||||
obj.hide_viewport = False;
|
||||
|
||||
# Selects all the objects and then deletes.
|
||||
bpy.ops.object.select_all(action = "SELECT");
|
||||
bpy.ops.object.delete();
|
||||
|
||||
# Function to spawn the "ground" by creating several cubes using a nested for loop.
|
||||
def spawnGround():
|
||||
# Iterate over each grid "cell" we want a cube at.
|
||||
for x in range(xNum):
|
||||
for y in range(yNum):
|
||||
for z in range(zNum):
|
||||
# Set the location.
|
||||
location = (x, y, z);
|
||||
|
||||
# Add the cubes.
|
||||
bpy.ops.mesh.primitive_cube_add(size = size, location = location, scale = (size, size, size));
|
||||
|
||||
# Set the newly created cube as the active object.
|
||||
activeObject = bpy.context.active_object;
|
||||
|
||||
# Object View Layer variable.
|
||||
activeObjectViewLayer = bpy.context.view_layer.objects.active;
|
||||
|
||||
|
||||
|
||||
# Add a new material slot.
|
||||
# bpy.ops.object.material_slot_add();
|
||||
|
||||
# Creating a new material and assigning it to the active cube.
|
||||
material = bpy.data.materials.new("Material");
|
||||
material.use_nodes = True;
|
||||
BSDF = material.node_tree.nodes["Principled BSDF"];
|
||||
materialNodes = material.node_tree.nodes;
|
||||
materialLinks = material.node_tree.links;
|
||||
|
||||
activeObject.data.materials.append(material);
|
||||
|
||||
# Change the texture of the cube.
|
||||
textureImage = material.node_tree.nodes.new('ShaderNodeTexImage');
|
||||
textureImage.image = bpy.data.images.load("C:\\Users\\satna\\OneDrive\\Desktop\\Programming\\Python\\Blender\\Blender-World-Generator\\DirtBlock.png");
|
||||
material.node_tree.links.new(BSDF.inputs['Base Color'], textureImage.outputs['Color']);
|
||||
|
||||
# Assign the texture to the object.
|
||||
if activeObjectViewLayer.data.materials:
|
||||
activeObjectViewLayer.data.materials[0] = material;
|
||||
else:
|
||||
activeObjectViewLayer.data.materials.append(material);
|
||||
|
||||
|
||||
# Calling the functions:
|
||||
cleanScene();
|
||||
spawnGround();
|
Reference in New Issue
Block a user