SYDLAB_inha/Dynamic Mesh

VDMC - Test Model "TMMv1"(3) Technical Adoptions

빈그레 2024. 1. 26. 16:42

 

 

 

1D displacements coding for the displaced subdivision surface, KDDI

 

: Displacement를 local coordinates로 변경했을 때, 3D displacemen는 1D displacement가 된다.

 

**displacement(변위) : 나중 위치에서 현재 위치 뺀 벡터량  

 

 

기존의 displacement는 x,y,z coordinates이고 이를 local coordinate로 conversion하면 nth coordinate가 된다.

이렇게 coordinates를 변경하면 normal vector쪽으로 많은 에너지를 갖게 된다. //뭔소리??

 

< ntb coodinate > 

: 각 vertex에 대해 정의된 local coordinate system이다. 이 좌표계는 보통 정점의 노말(Normal, n), 탄젠트(Tangent, t), 그리고 바이노말(Binormal, b) 벡터로 구성된다. 

 

  • 노말(Normal, n): 메시의 표면에서 해당 점에서 수직으로 뻗어나오는 벡터입니다. 이는 표면의 방향성을 나타냅니다.
  • 탄젠트(Tangent, t): 메시 표면에 접하면서, 일반적으로 텍스처 매핑에서의 U(가로) 방향의 변화를 나타내는 벡터입니다.//tangent vector는 곡선이나 ㅛ면에 대해 점하는 방향을 나타내는 벡터이다.
  • 바이노말(Binormal, b) 또는 바이탄젠트(BiTangent): 노말과 탄젠트에 모두 수직인 벡터로, 텍스처 매핑에서 V(세로) 방향의 변화를 나타냅니다.

 

 

normal vector에 대해 분산이 크고, tangential이나 bi는 거의 비슷한 것을 확인할 수 있다.

-> normal만 보내자!!.

 

 

.

 

3차원 mesh를 sampling해서 point cloud로 만들고, 원본과 복원된 mesh 모두 point cloud로 만든다.

D1,D2는 position 정보를 나타내는 geometry에 대한 BD-rate이고, Luma,Cb,Cr은 Attribute에 대한 BD-rate이다.

 

all intra에서는 Normal vector에 대한 정보만 보냈기 때문에 Geometry에 대해서는 loss가 발생했고, attributes입장에서는 gain이 있었다.

Random Access에서는 Geometry와 attributes에서 모두 gain이 있었기 때문에 최종적으로 adoption이 되었다.

 

 

 

하나의 축만 사용하는 1D dispalcement를 채택하되, 3개의 축을 모두 가져가는 3dim version도 사용할 수 있도록 flag를 추가하여 선택할 수 있도록 하였다.

 

 

 

Displacement Reverse Packing for Dynamic Mesh Coding

 

: Displacemet(enhancement vector)를 reverse packing하는 기술이다.

 

** Displacement packing : 동적 메시 코딩(Dynamic Mesh Coding)에서의 변위 벡터 또는 변위 정보를 효율적으로 저장하거나 전송하기 위해 데이터를 구성하는 과정을 의미한다.

 

 

 

LOD :&nbsp; Level of Details

 

 

low frequency부터 high frequency까지 순차적으로 packing을 했었는데, 우측은 inverse하여 LOD가 높은 것 먼저 상위에 두어 순차적으로 packing을 하였다.

 

 

 

inverse packing을 했을 때 gain이 생긴 것을 확인할 수 있다.

 

 

이것도 flag를 두고 껐다 켰다 해서 원래 순서나 inverse 모두 선택적으로 사용할 수 있다.

//RDO가 없어서 둘 다 해보고 결정한다...??

 

 

 

Improvement on Local coordinate system for displacement coding

 

 

 

 

 

 

LOD0는 base mesh이고 여기서 sub-division하면 순차적으로 LOD1 vertex, LOD2 vertex 가 생성된다.

 

[TMMv2]

sub-division되어 생긴 vertex에 대한 normal vector는  base mesh의 vertex들의 normal vector들을 interpolation하여 만들었다. 따라서 LOD가 증가함에 따라 interpolation이 증가할수록 normal vector가 휘는 현상이 발생했다.

//face의 normal을 사용하지 않고 interpolation된 normal를 사용하여 문제가 있었다.

 

[Proposed]

이를 sony에서 발견하여 face normal로 바꾸었다. subdivision된 모든 vertex에 기존 base mesh의 normal을 interpolation하여 사용하지 않고 face들의 normal을 사용하도록 하였다.