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
  • 相关阅读:
    内存溢出
    接手新业务
    pjb fabu
    中文手册
    人背的时候,做啥都失败
    帮助开发人员学习
    python中的__dict__,__getattr__,__setattr__
    NetCore在Docker中发布及运行
    ELK基础配置
    IdentityServer4 手动验签及日志记录
  • 原文地址:https://www.cnblogs.com/yaoyu126/p/8625914.html
Copyright © 2011-2022 走看看