View Categories

3ds Max Alembic Dosya Uzantısı Referansı

3 dakika okuma

3ds Max, ek veri depolamak ve diğer uygulamalarla daha iyi veri alışverişi sağlamak için Alembic dosya spesifikasyonunu geliştirir. Bu uzantılar, diğer Autodesk ürünleriyle (örneğin Maya) birlikte çalışabilirliği artırmak için Autodesk standartlarına uygundur. Bu konu, Autodesk standartlarını açıklar ve 3ds Max’in Alembic dosya dışa aktarımları için eklediği belirli uzantıları listeler.

Genel Notlar #

  • Düğümlerin ve özelliklerin adlarında boşluk bulunmaz.
  • Özel Nitelikler bir klasör altında saklanır. .kullanıcıÖzellikleriMülk. Bunlar iki kategori altında olabilir. .geomveya .xformDüğümler, geometrisi olmayan nesnelerin özel verilere sahip olmasını sağlar.

Ek UV Kanalları #

  • Ekstra UV kanalları, .geom özelliği altında bulunan .arbGeomParams dosyasında saklanır.
  • Özellik adı, kanal adıdır.
  • Yalnızca UV verileri dışa aktarılır, UVW verileri dışa aktarılmaz.
  • .değerlerExtent = 2 olan bir kFloat32POD dizisidir.
  • .indekslerExtent = 1 olan kUint32POD’lardan oluşan bir dizidir.

Dışa Aktarılmamış Veriler #

Alembic’te spline eğrileri desteklenmemektedir. Spline eğrileri dışa aktarılmak üzere NURB formatına dönüştürülür.

Örnekler #

Örnekler, Alembic spesifikasyonuna uyduklarında desteklenir. Ancak, tekrarlanan geometriler algılanmaz ve içe aktarma sırasında örneklere dönüştürülmez.

Kameralar #

3ds Max sahne kameraları Alembic formatında dışa aktarılıyor.

Maya varsayılan olarak perspektif kameraları (ön, perspektif, yan ve üst) dışa aktarır.

3ds Max Özel Veri Düğümleri #

Maksimum Düğümler
Düğüm Tip Notlar
Düğüm/Düğüm/Maksimum Görünürlük Skalar : Float32

Maksimum nesne özniteliklerini tutmak için kullanılan kapsayıcı. Desteklenen öznitelikler şunlardır:

{ kHide, _T("Hide"), CustomAttribute::DataType::kBool},

{ kFreeze, _T("Freeze"), CustomAttribute::DataType::kBool},

{ kSeeThrough, _T("SeeThrough"), CustomAttribute::DataType::kBool},

{ kDisplayAsBox,_T("DisplayAsBox"), CustomAttribute::DataType::kBool },

{ kBackfaceCull,_T("BackfaceCull"), CustomAttribute::DataType::kBool },

{ kEdgesOnly,_T("EdgesOnly"), CustomAttribute::DataType::kBool},

{ kVertexTicks,_T("VertexTicks"), CustomAttribute::DataType::kBool},

 kMotionPaths,_T("MotionPaths"), CustomAttribute::DataType::kBool},

{ kIgnoreExtents,_T("IgnoreExtents"), CustomAttribute::DataType::kBool},

{ kShowFrozenInGray,_T("ShowFrozenInGray"), CustomAttribute::DataType::kBool},

{ kNeverDegrade,_T("NeverDegrade"), CustomAttribute::DataType::kBool},

{ kRenderable,_T("Renderable"), CustomAttribute::DataType::kBool},

{ kInheritVisibility,_T("InheritVisibility"), CustomAttribute::DataType::kBool },

{ kVisibleToCamera,_T("VisibleToCamera"), CustomAttribute::DataType::kBool},

{ kVisibleToReflection,_T("VisibleToReflection"), CustomAttribute::DataType::kBool },

{ kReceiveShadows,_T("ReceiveShadows"), CustomAttribute::DataType::kBool},

{ kCastShadows,_T("CastShadows"), CustomAttribute::DataType::kBool},

{ kApplyAtmospherics,_T("ApplyAtmospherics"), CustomAttribute::DataType::kBool},

{ kRenderOccludedObjects,_T("RenderOccludedObjects"), CustomAttribute::DataType::kBool },

{ kDisplayByLayer,_T("DisplayByLayer"), CustomAttribute::DataType::kBool },

{ kRenderingByLayer,_T("RenderingByLayer"), CustomAttribute::DataType::kBool },

{ kMotionBlurByLayer,_T("MotionBlurByLayer"), CustomAttribute::DataType::kBool },

{ kMotionBlurEnabled,_T("MotionBlurEnabled"), CustomAttribute::DataType::kBool},

{ kMotionBlurMultiplier,_T("MotionBlurMultiplier"), CustomAttribute::DataType::kFloat},

{ kMotionBlurType,_T("MotionBlurType"), CustomAttribute::DataType::kInt },

{ kObjectID,_T("ObjectID"), CustomAttribute::DataType::kULong },

{ kUserPropBuffer,_T("UserPropBuffer"), CustomAttribute::DataType::kString },
Düğüm/Düğüm/MaksimumÖzelÖznitelikler_TemelNesne Birleştirmek

Temel nesneye atanmış Özel Nitelikleri tutmak için kullanılan kapsayıcı. Düğümler, Doku Haritaları, Malzeme (refs adı dize olarak saklanır) ve diziler (yalnızca seçilen öğenin dizinini saklar) hariç tüm Özel Nitelik türleri doğrudan desteklenir.

Meta Veri: “max_a_uihint” ifadesi, verilerin nasıl kullanıldığına dair ipucu vermek için her bir özniteliğe eklenir; bunlar ParamType ve ParamType2 enum’larıdır.

Düğüm/Düğüm/MaksimumÖzelÖznitelikler_Değiştirici Birleştirmek Nesne değiştiricisine atanmış özel nitelikleri tutmak için kullanılan kapsayıcı. Yukarıdakiyle aynı. NOT: Şu anda içe aktarma işlemi desteklenmiyor.

1.0.0 sürümündeki yenilikler
Düğüm Tip Yorumlar
Düğüm/Düğüm/.userProperties/Max_CustomAttributes_BaseObject
Düğüm/Düğüm/.userProperties/Max_CustomAttributes_Modifier
Düğüm/Düğüm/.userProperties/Max_CustomAttributes_Modifier OStringProperty Bu düğümü içeren katmanın adını içerir.
Düğüm/Düğüm/.geom/.arbGeomParams/Max_Map_Channel “Adı” Birleştirmek Tek bir kanalı barındıran kap
Düğüm/Düğüm/.geom/.arbGeomParams/Max_Map_Channel “Adı”/.vals OV2fGeomParam veya OV3fGeomParam dizisi Doku verilerini içerir.
Düğüm/Düğüm/.geom/.arbGeomParams/Max_Map_Channel “Adı”/.indeksler OInt32Property dizisi Doku indekslerini içerir.
Düğüm/Düğüm/.geom/.arbGeomParams/Max_Map_Channel “Adı”/Max_Map_ChannelNumber Skalar OInt32Özelliği Max tarafından kullanılan harita kanalı
Düğüm/Düğüm/.geom/.arbGeomParams/Max_Vertex_Color_Map Birleştirmek Köşe rengi kanalı için kapsayıcı
Düğüm/Düğüm/.geom/.arbGeomParams/Max_Vertex_Color_Map/.vals OC3fGeomParam dizisi Köşe rengi verilerini içerir.
Düğüm/Düğüm/.geom/.arbGeomParams/Max_Vertex_Color_Map/.indeksler OInt32Property dizisi Köşe rengi indeksleri
Düğüm/Düğüm/.geom/.userProperties/Maksimum_MalzemeAdı OStringProperty Düğümün malzemesinin adını içerir.
Düğüm/Düğüm/.geom/.userProperties/Max_ObjectID OUInt32Property Düğümün nesne kimliğini içerir.
Düğüm/Düğüm/.geom/Maksimum_MalzemeID_# Birleştirmek OFaceSetSchema yüz seti şemasını içerir.
Düğüm/Düğüm/.geom/Maksimum_MalzemeID_#/.yüzkümesi
Düğüm/Düğüm/.geom/Max_MaterialID_#/.faceset/.selfBnds
Düğüm/Düğüm/.geom/Max_MaterialID_#/.faceset/.faces
Düğüm/Düğüm/.geom/Maksimum_Malzeme_ID_#/Maksimum_Malzeme_ID OInt32Özelliği Yüzey malzemesi kimliği için ek özellik

Desteklenen eğrilerin özellikleri #

Düğüm Tip Yorumlar
Bezier Adı:#
BezierAdı/BezierAdı:#/.geom/
BezierName/BezierName:#/.geom/.selfBnds
BezierAdı/BezierAdı:#/.geom/.P
BezierName/BezierName:#/.geom/nVertices
BezierName/BezierName:#/.geom/curveBasisAndType
BezierName/BezierName:#/.geom/width
BezierAdı/BezierAdı:#/MaxLayerName
BezierName/BezierName:#/\MaxObjectID
Düğüm/NURBSAdı
Düğüm/NURBSAdı/.geom/
Düğüm/NURBSAdı/.geom/.selfBnds
Düğüm/NURBSAdı/.geom/.P
Düğüm/NURBSAdı/.geom/nKöşeler
Düğüm/NURBSAdı/.geom/eğriTemeliVeTipi
Düğüm/NURBSAdı/.geom/genişlik
Düğüm/NURBSAdı/MaksimumKatmanAdı
Düğüm/NURBSAdı/\MaksimumNesneID

Desteklenen kamera özellikleri #

Aşağıda Max’te desteklenen kamera özellikleri ve bunların nasıl hesaplandığı açıklanmıştır.

       KameraDurumu lKameraDurumu;

       Aralık lValid( TIME_NegInfinity, TIME_PosInfinity );
       RefResult lRefResult;

       lRefResult = lGenCamera->EvalCameraState( t, lValid, &lCameraState );
       Interface *lMaxInterface = GetCOREInterface();

       double lLensSqueeenzeRatio = lMaxInterface ? lMaxInterface->GetRendApect() : 1.0;
       mSample.setLensSqueezeRatio( lLensSqueeenzeRatio );

       çift ​​diyafram genişliği = 3,6f;
       Çift diyafram yüksekliği = 2,4f;
       eğer (lMaxInterface) {
             lApertureWidth = lMaxInterface->GetRendApertureWidth() * MATH_MM_TO_CM;
             float lImageAspect = lMaxInterface->GetRendImageAspect();
             if ( lImageAspect <= 0.0f ) {
                    lImageAspect = 0.001f;
             }

             lApertureHeight = lApertureWidth * ( 1.0 / lImageAspect );
       }
       mSample.setHorizontalAperture( lApertureWidth );
       mSample.setVerticalAperture( lApertureHeight );      

       double lAngleOfView = lCameraState.fov * MATH_RAD_TO_DEG;
       int lFovType = lGenCamera->GetFOVType();
       çift ​​lOdakUzunluğu = OdakUzunluğunu Hesapla( lGörüşAçısı, lDireksiyonGenişliği,
             lApertureHeight, lFovType, lLensSqueeenzeRatio ) * ( 1.0 / MATH_MM_TO_CM );
       mSample.setFocalLength( lFocalLength );
      

       mSample.setNearClippingPlane( lCameraState.nearRange );
       mSample.setFarClippingPlane( lCameraState.farRange );
       mSample.setFStop( lGenCamera->GetDOFFStop( t ) );
       mSample.setFocusDistance(lCameraState.tdist);

Desteklenen Alt Bölüm özellikleri #

Desteklenmiyor.

Desteklenen Noktalar Temel Özellikler #

Simple ve PFlow parçacıkları OPointsSchema aracılığıyla desteklenmektedir.

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir