当前位置: 首页 > news >正文

【编程实践】利用python在Blender生成三维模型

在这里插入图片描述

import bpy
import bmeshdef create_material(name, color, image_path=None):mat = bpy.data.materials.new(name=name)mat.use_nodes = Truebsdf = mat.node_tree.nodes.get("Principled BSDF")if image_path:# 贴图模式tex_image = mat.node_tree.nodes.new("ShaderNodeTexImage")tex_image.image = bpy.data.images.load(image_path)mat.node_tree.links.new(bsdf.inputs['Base Color'], tex_image.outputs['Color'])else:# 纯色bsdf.inputs['Base Color'].default_value = colorreturn matdef create_house():# 删除已有对象bpy.ops.object.select_all(action='SELECT')bpy.ops.object.delete(use_global=False)# 创建房子墙体(立方体)bpy.ops.mesh.primitive_cube_add(size=4, location=(0, 0, 2))wall = bpy.context.active_objectwall.name = "Wall"# 创建屋顶(四棱锥)mesh = bpy.data.meshes.new("Roof_Mesh")roof = bpy.data.objects.new("Roof", mesh)bpy.context.collection.objects.link(roof)bm = bmesh.new()# 底部四角b = 2z_base = 4verts = [bm.verts.new((-b, -b, z_base)),bm.verts.new(( b, -b, z_base)),bm.verts.new(( b,  b, z_base)),bm.verts.new((-b,  b, z_base)),]top = bm.verts.new((0, 0, z_base + 2))  # 屋顶顶点# 创建四个面(屋顶侧面)for i in range(4):bm.faces.new([verts[i], verts[(i + 1) % 4], top])# 底面bm.faces.new(verts)bm.to_mesh(mesh)bm.free()# 材质wall_mat = create_material("Wall_Mat", (0.8, 0.5, 0.3, 1))  # 棕墙roof_mat = create_material("Roof_Mat", (0.2, 0.1, 0.05, 1))  # 深屋顶wall.data.materials.append(wall_mat)roof.data.materials.append(roof_mat)create_house()
http://www.lqws.cn/news/555607.html

相关文章:

  • Kafka 消费者重平衡问题排查与优化实践
  • 在单片机中如何实现一个shell控制台
  • 阿里云-arms监控
  • zookeeper Curator(1):认识zookeeper和操作命令
  • 华为云鸿蒙应用入门级开发者认证 实验部分题目及操作步骤
  • 【龙泽科技】新能源汽车故障诊断仿真教学软件【吉利几何G6】
  • Qt:QCustomPlot库的QCPAxis
  • 第一章 城镇道路工程 1.5 安全质量控制
  • python解释器 与 pip脚本常遇到的问题汇总
  • PYTHON从入门到实践7-获取用户输入与while循环
  • 医疗标准集中标准化存储与人工智能智能更新协同路径研究(上)
  • Next.js实战:AI两小时开发文档社区
  • pytest 中的重试机制
  • 分布式电源采集控制装置:江苏光伏电站的“智能调度中枢
  • 【Java--SQL】${}与#{}区别和危害
  • 如何关闭win更新-随笔11
  • 稳定币独角兽:Circle
  • 零基础langchain实战二:大模型输出格式化成json
  • 【SpringSecurity鉴权】
  • 深入剖析AI大模型:Dify的介绍
  • centos指令
  • 利用GPU加速TensorFlow
  • 一文读懂Kubernetes(K8s)
  • 设计模式 (四)
  • Gradio全解13——MCP详解(4)——TypeScript包命令:npm与npx
  • maven多模块、多层级项目 如何只构建指定的项目
  • TypeScript 中的 WebSocket 入门
  • stream使用案例
  • 【Docker基础】Docker容器管理:docker stats及其参数详解
  • JavaScript中Object()的解析与应用