首页 > 其他分享 >Blender Texture Coordinate节点中Generated和Object详细区别

Blender Texture Coordinate节点中Generated和Object详细区别

时间:2024-11-13 14:46:27浏览次数:1  
标签:缩放 物体 Object Texture 纹理 Generated 坐标 坐标系

1. Generated 坐标

原理:

  • Generated坐标是Blender内置的基于物体几何体的自动坐标系。这个坐标系是在物体创建时生成的,不依赖于物体的UV映射或物体变换(如旋转、缩放、位移)。Generated坐标系通常被用作一种自动化的纹理坐标映射方法,适用于没有进行复杂UV展开的场景。

坐标系定义:

  • 这个坐标系基于物体的局部空间创建。对于每个物体,Blender会自动生成一个适合该物体几何体的坐标系。这个坐标系通常在物体的Object模式下定义,并且是物体的几何形状的一个静态表示。
  • 对于简单的物体(比如球体、立方体、圆柱体等),Generated坐标系会尽可能匹配物体的几何形状。如果物体的形状发生变化(比如从立方体变为球体),生成的坐标会自动适应物体的形状变化。

变化特性:

  • Generated坐标系在物体缩放、旋转或平移时是不变的。换句话说,纹理坐标的生成是基于物体几何的原始定义,而不是物体的世界坐标系或变换。
  • 即使你对物体进行缩放、旋转、位移等变换,纹理坐标(Generated)仍然保持相对不变。

使用场景:

  • Generated坐标适用于那些不需要复杂UV映射的情况,尤其是对于像球体、立方体、平面等基础几何体的纹理映射。它常常用于快速生成纹理,而无需复杂的UV展开过程。
  • 比如,在给一个立方体加上程序生成的纹理时,可以直接使用Generated坐标,因为立方体的自动坐标系可以很好地适应这种映射。

2. Object 坐标

原理:

  • Object坐标是基于物体在世界空间中相对于原点的位置和旋转的坐标系统。每个物体都有一个自己的本地坐标系,Object坐标就是使用这个本地坐标系来映射纹理。

坐标系定义:

  • Object坐标系是一个局部坐标系统,它基于物体原点的位置、旋转和缩放来定义纹理坐标。纹理坐标是通过物体原点在3D空间中的位置来计算的,而这个位置会随着物体的变换(旋转、缩放、位移)而改变。

  • 换句话说,Object坐标是相对于物体的局部空间定义的,而物体的原点、旋转和缩放会直接影响纹理坐标的计算。
    变化特性:

  • 与Generated坐标不同,Object坐标会受到物体的缩放、旋转、位移的影响。物体变换的每一次变化都会影响纹理坐标的计算,从而影响纹理的映射效果。

  • 例如,如果你移动、旋转或缩放物体,纹理会相应地随着物体的变换而调整。这意味着纹理映射是“附着”在物体上的,随着物体的每一个变化而改变。

使用场景:

  • Object坐标适用于那些你希望纹理与物体的变换(例如位移、旋转、缩放)紧密相关的情况。常用于一些依赖于物体位置的纹理效果,例如:
  • 在多个物体之间共享纹理时,Object坐标可以确保纹理根据物体的位置、旋转和缩放来适配。
  • 用于生成某些类型的效果,比如在某个物体的表面上创建与物体相对的动态纹理(例如根据物体移动来改变纹理的偏移)。
  • 例子:
    假设你有一个物体(比如一个立方体)和一个在世界空间中移动的摄像机:
    如果你使用Generated坐标,纹理将一直按照立方体的生成坐标进行映射,不受摄像机的影响,纹理看起来是固定的。
    如果你使用Object坐标,立方体的移动、旋转、缩放会影响纹理的映射,纹理会随着物体的变换而变化。

总结对比

特性 Generated坐标 Object坐标
坐标系基础 基于物体的生成几何体,通常是静态的 基于物体的本地坐标系,受物体变换影响
变换影响 不受物体的位移、旋转、缩放影响 受物体的位移、旋转、缩放影响(记得应用)
适用场景 适用于简单的几何体,如立方体、球体等,快速自动生成纹理坐标 适用于物体变换和位置相关的纹理效果,如物体之间共享纹理
典型用途 自动生成纹理坐标,尤其在没有UV展开时 基于物体变换的纹理映射,适合动态效果或多个物体共享纹理

这两种坐标系的选择,取决于你对纹理映射的需求。如果你希望纹理和物体变换紧密相关,Object坐标会更合适;如果你只关心纹理和物体几何体的关系,且不希望变换影响纹理映射,Generated坐标则是一个更简单的选择。

标签:缩放,物体,Object,Texture,纹理,Generated,坐标,坐标系
From: https://www.cnblogs.com/chenxiayun/p/18543913

相关文章

  • AFPN: Asymptotic Feature Pyramid Network for Object Detection-afpn
    paper可以借鉴的点:下采样和上次样融合两个不同尺度特征图fromcollectionsimportOrderedDictimporttorchimporttorch.nnasnnimporttorch.nn.functionalasFdefBasicConv(filter_in,filter_out,kernel_size,stride=1,pad=None):ifnotpad:p......
  • gem5 学习三 —— gem5 Objects
    ObjectSimobject类是一个非常复杂但又十分重要的类。它在Gem5中占有及其重要的地位。gem5的模块化设计是围绕SimObject类型构建的。模拟系统中的大多数组件都是SimObjects的子类,如CPUs,caches,memory,memorycontroller等。gem5将所有这些对象从其C++实现导出到P......
  • 第四话: 纹理(Texture)和渲染器(Renderer)
    SDL简单教程第四话:纹理(Texture)和渲染器(Renderer)SDL简单教程前言第四话:纹理(Texture)和渲染器(Renderer)4.1创建渲染器和纹理概念介绍4.2加载图像并转换为纹理4.3在渲染器上绘制纹理4.4错误处理的深度剖析4.5跨平台考虑4.总结前言  SDL2(SimpleDirectMedia......
  • wx.navigateToMiniProgram(Object object)
    基础库1.3.0开始支持,低版本需做兼容处理。以Promise风格调用:支持需要页面权限:当前是插件页面时,宿主小程序不能调用该接口,反之亦然小程序插件:支持,需要小程序基础库版本不低于2.18.1微信Windows版:支持微信Mac版:支持功能描述打开另一个小程序参数Objectobject属性......
  • yolov8目标跟踪与行人车辆计数+YOLOv8 Object Detection with DeepSORT Tracking(ID +
    YOLOv8目标检测与DeepSORT跟踪技术简介在计算机视觉领域,目标检测和跟踪是两个至关重要的任务。目标检测旨在识别图像或视频中的特定对象,并确定它们的位置;而目标跟踪则是在连续的帧之间保持对这些对象的身份和位置的一致性跟踪。本文将详细介绍YOLOv8作为先进的目标检测算法......
  • Object.assign(), 一道关于基本类型合并的面试题
    vars1="abc";vars2=true;vars3=10;vars4=Symbol("foo")varobj=Object.assign(s1,null,s2,undefined,s3,s4);console.log(obj);//{"0":"a","1":"b","2":"c&quo......
  • [Javascript] Iterate over Object
    const[a,b]={a:3,b:4,};console.log(a,b);//TypeError:{(intermediatevalue)(intermediatevalue)}isnotiterable Howtomakeitworkwithouttouchoriginalcode?Weneedtouse[Symbol.iterator]forObject.prototype;Object.prototype[Sym......
  • 基于Arcgis10.8+VS2019的ArcObjectsSDKNet安装
    基于Arcgis10.8+VS2019的ArcObjectsSDKNet安装首先Arcgis10.8和Arcgis10.8.1所需要的ArcObjectsSDKNet版本是不同的在使用10.8的ArcObjectsSDKNet在Arcgis10.8.1的基础上是安装不了的,会检测不到在安装Arcgis10.8的基础上,下载Arcgis10.8的ArcObjectsSDKNet,解压后进行安装连接......
  • BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection阅读小结
    BEVDet4D:ExploitTemporalCuesinMulti-camera3DObjectDetectionBEVDet4D:在多相机三维目标检测中利用时间线索摘要背景:单帧数据包含有限信息,限制了基于视觉的多相机3D目标检测性能。BEVDet4D提出:提出BEVDet4D范式,将BEVDet从仅空间的3D扩展到时空4D工作空间。改进:通过......
  • C++对象模型:object
    一、objecttypedefstruct{floatx;floaty;floatz;}Point3d;可以有以下方法打印上述类型字段:定义函数voidprint_point3d(constPoint3d*pd){printf("(%g,%g,%g)",pd->x,pd->y,pd->z);}若要更有效率,可以定义一个宏函数#definePoint3d_print(pd)......