参考这个教学

1: Pasted image 20250105115526.png -> 2: Pasted image 20250105121905.png -> 3: Pasted image 20250106164220.png -> 4: Pasted image 20250106164521.png -> 5: Pasted image 20250106164825.png

  • 制作道路:
    1. 制作随机网格: 随机2, 3层细分
    2. 制作随机扭曲: 把随机的mesh merge在一起
      • Merge by Distance Node 融合: 输入Boolean的随机值, distance选择0.26( 稍 > 2级细分, 即1/4)
      • 再次用0.01的distance 融合: 去除重复的边
    3. 把网格转成道路
      • mesh转成折线curve: Mesh to Curve
      • 折线curve转成圆角曲线: Fillet Curve (类似Bevel倒角的效果)
        • Count 控制中间点的个数, Radius控制圆角弧度大小, 选择Limit Radius 保证圆角起终点不会超出范围(什么情况是需要超出范围的吗? 这个选项总是要选)
      • 转成道路: Curve to Mesh (效果为Curve沿Profile Curve 挤出)
        • Curve 处输入我们的道路curve
        • Profile Curve 处用Curve Line 输入一个固定长度线段Curve
    4. 增加厚度: Extrude Mesh Node 沿面的法相挤出
    5. 关闭自动的Smooth Shading: Set Shade Smooth Node

1: Pasted image 20250106204640.png -> 2: Pasted image 20250106205132.png -> 3: Pasted image 20250106214511.png -> 4: Pasted image 20250106214738.png

  • 制作建筑物: 安插在道路网格的间隙
    1. 制作底座: 把折线道路(道路步骤2的结果)向内挤出
      • Extrude Mesh Node 沿面的法相挤出, 但是厚度为0
      • 选中输出Top(新生成的面)向内scale
    2. 制作楼体:
      • 把底座内部向上拉伸
      • 去掉第一步制作底座时没用的mesh, 只保留底座拉伸部分
    3. 制作屋顶:
    4. 把街区内部进一步切分, 和道路放在一起

Pasted image 20250107055846.png

  • shading: 在cycles渲染模式下
    • world: 添加一个Sky Texture, 适当调整参数
    • object:
      • 楼体: 每幢楼随机两个贴图
        • Geometry Node 的random per Island(每个connected component随机) 的功能 + constant Color Ramp(把数值映射成 0 或 1 )
        • mix shader混合
      • 楼顶: 用Geometry Node 的normal + Spearate XYZ NodeZ输出, 选中楼顶

texture Coordinate 的设置

  • 我们用Image Texture 设置颜色的映射时, 把默认的 flat 改为 box
    • flat的映射: flatSphere的映射方法: box

用到的blender的一些快捷键功能

  • 打开关闭侧边 Transform栏: N
  • Object Mode:
    • Apply(应用变形): Command + A
      • 比例尺(Apply Scale): 应用后, 物体上的变换, 由比例变成实际距离?
        • 比如400scale的物体, 应用前 0.1 的变换, 和应用后40m的变换等价
        • blender的滑块单位是0.1, 可能是有时候物体太大, 按比例调整不方便?
  • Geometry Nodes合并成group
    • 在原有Node输入的地方可以加input Node
      • input Node的参数不能改名字
      • Node内部的参数不能改成输入😮‍💨