Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
<!-- Close or Related Issues --> Close #586 ### What I did(変更内容) <!-- Please describe the motivation behind this PR and the changes it introduces. --> <!-- どのような変更をしますか? 目的は? --> 各ポリゴンについて、一定の距離に対するテクスチャのピクセルの数を制限し、制限を超える場合はテクスチャをスケーリングします。 (文章が長くなるので、距離ごとのピクセル数 = PD とします) 具体的な処理を述べると - 各ポリゴンに対して、構成するvertexの(x,y,z,u,v)から、各辺のユークリッド空間上の距離とテクスチャ上の距離(ピクセル数)を割り出します。その後、各辺ごとのPD(=ピクセル数/ユークリッド距離)の最小値を割り出し、これをポリゴン全体のPDとしています。 - PDの制限値としてMaxPDを設けます (例えばMaxPD=6のときは、許容するPDの最大値が6となります) 。 - MaxPD/PDを求めます。これが1を下回る場合(=テクスチャの解像度が過剰である場合)は、テクスチャのdownsampleの倍率に適用されます。 ### Notes(連絡事項) <!-- If manual testing is required, please describe the procedure. --> <!-- 手動での動作確認が必要なら手順を簡単に伝えてください。そのほか連絡事項など。 --> - uv座標をテクスチャのピクセルの座標に変える処理 (`uv_to_pixel_coords`)を追加しているのですが、`atlas-packer`側の実装と重複しています。ここは仕様が頻りに変わる処理ではなく、`atlas-packer`側の実装を変更してまでDRYを貫く必要性はないと感じているため、ここでは一旦重複した状態のままでコミットしています。 - 現状MaxPDの具体的な数値は、外部からの入力でなく、定数`MAX_PIXEL_PER_DISTANCE`として宣言しています(=15.0)。 --------- Co-authored-by: nokonoko1203 <healtheworld.1203@gmail.com>
- Loading branch information