Cut decals and hotspot sections in exact arithmetic

オープン
#177 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
15/100
issue の種類
リファクタリング
明瞭さ
説明が足りない
活発さ
活発
技術スタック
csharp, unity

調査の方向性

Start with DecalClipping (kEpsilon, SnapTo) and OutputHotspotSections / HotspotSections.Conforming, then trace how their output feeds OutputMeshCleanup and the weld. The issue asks for an investigation rather than a fixed change: whether ExactPlane, ExactInt and ExactTriangulator can do these cuts before floats, and what the cost per update is on the hotspot test scene and the sample scene. There is no defined finish line yet, so the first useful step is a written proposal from a maintainer.

索引モデルが issue の本文から書いたものです。

説明

enhancement

Decals and hotspot sections cut the surfaces the CSG made after the exact part of the pipeline, in doubles with tolerances:

  • DecalClipping clips each surface triangle against a decal's planes (Sutherland-Hodgman, kEpsilon), walks shared edges in a fixed order so both sides compute the same points, and snaps points near a boundary onto it (SnapTo)
  • OutputHotspotSections / HotspotSections.Conforming cut drawn surfaces along section lines in double2 in the surface's frame, with tolerances such as alongEdge
  • Polygon decals (#163) split their outline into convex parts and cut each with DecalClipping

To look at:

  • Doing these cuts with the exact types (ExactPlane, ExactInt, ExactTriangulator) before anything is rounded to floats, so cut points on shared edges, outlines and section lines agree by construction instead of by tolerance
  • Clipping a surface polygon against a concave outline directly, instead of convex part by part
  • What OutputMeshCleanup and the weld still need to do afterwards
  • Cost per update against the current cuts, on the hotspot test scene and the sample scene
主要言語
C#
スター
135
フォーク
15
平均マージ
24分
マージ済み PR(30日)
89

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

RadicalCSG/com.chisel のほかの issue

RadicalCSG/com.chisel の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。