zoukankan      html  css  js  c++  java
  • Blender Python UV 学习

    Blender Python UV 学习

    1. bmesh面转换

    bm = bmesh.from_edit_mesh(bpy.context.edit_object.data)
    bm.faces.ensure_lookup_table()

    2. 面选择

    # Index of face to texture
    face_ind = 0
    bpy.ops.mesh.select_all(action='DESELECT')
    bm.faces[face_ind].select = True

    3. uv展开

    # Unwrap to instantiate uv layer (对选择表面, 展开uv层)
    bpy.ops.uv.unwrap()

    4. 得到uv BMLayerItem

    # Grab uv layer
    uv_layer = bm.loops.layers.uv.active

    bm.loops <bmesh.types.BMLoopSeq>

        This meshes loops (read-only).
        Note: Loops must be accessed via faces, this is only exposed for layer access.
    

    bm.loops.layers <bmesh.types.BMLayerAccessLoop>

        custom-data layers (read-only).
    

    bm.loops.layers.uv <bmesh.types.BMLayerCollection>

        Accessor for BMLoopUV UV (as a 2D Vector).
    

    bm.loops.layers.uv.active <bmesh.types.BMLayerItem>

        The active layer of this type (read-only).
    

    bmesh.types.BMLayerItem

        Exposes a single custom data layer, their main purpose is for use as item accessors to custom-data when used with vert/edge/face/loop data.
    

    5. 开始uv映射

    # Begin mapping...
    loop_data = bm.faces[face_ind].loops

    bm.faces <bmesh.types.BMFaceSeq>

        This meshes face sequence (read-only).
    

    bm.faces[face_ind] <bmesh.types.BMFace>

    bm.faces[face_ind].loops <bmesh.types.BMElemSeq of BMLoop>

    bmesh.types.BMLoop

    This is normally accessed from BMFace.loops where each face loop represents a corner of the face.
    
    # bottom right
    uv_data = loop_data[0][uv_layer].uv
    uv_data.x = 1.0
    uv_data.y = 0.0
  • 相关阅读:
    异步、作用域、闭包--setTimeout在for循环中的思考
    C++中*和&的定义和使用
    利用border设置transparent绘制图形
    暑假周记四
    暑假周记三
    win10系统下安装Linux虚拟机以及在虚拟机上安装Ubuntu
    暑假周记二
    暑假周记一
    《浪潮之巅》上——阅读笔记06
    《浪潮之巅》上——阅读笔记05
  • 原文地址:https://www.cnblogs.com/yaoyu126/p/8625914.html
Copyright © 2011-2022 走看看