Architecture
基本構造は次の順序です。
N-menu UI
↓
Scene.kj_eth_settings
↓
Target Object Registry
↓
Target Unit Registry
↓
Evaluated Mesh Analysis
↓
Per-Target Surface ShaderNodeTree
↓
Per-Object World-to-Local Ray Transform
↓
Shared Ray/Triangle Kernel
↓
Per-Unit Triangle MAX Union
↓
Master Target Unit MAX Union
↓
Runtime Reveal Group
↓
Occluder Material Reveal Wrapper
↓
Material Preview / Rendered
補助処理としてDepsgraph Handler、Frame Handler、Render Handler、GPU Draw Handler、Debug Textがあります。
Scene Root
Scene Propertyとして「bpy.types.Scene.kj_eth_settings」を使用します。
KJETH_SettingsをPointerPropertyとして登録します。
SceneごとにTarget Registry、Occluder Registry、各種設定を保持します。
Target Object Registry
Target Object RegistryはKJETH_TargetObjectItemで管理します。
主な情報はenabledとobjectです。
Target Object Listに登録行が存在する場合、Active RowがTarget Vertex Group UIの編集Ownerになります。
上部のcharacter_objectは登録前のstaging selectorとして扱います。
Target Object List行をObject Pickerとして使用してはいけません。
行はSelection LabelとEnabled Checkboxを基本とします。
Target Unit Registry
Target Vertex GroupはKJETH_TargetItemで管理します。
主なPropertyはenabled、target_object、vertex_group、runtime_group_name、runtime_vertex_group、runtime_target_objectです。
Runtime Unit KeyはTarget Object + Vertex Groupから構成します。
同名GroupでもOwner Objectが異なれば別Unitです。
Occluder Registry
OccluderはKJETH_OccluderItemで管理します。
主なPropertyはenabledとobjectです。
有効なOccluder List Rowが存在する場合はListを実際のRegistryとして扱います。
上部のOccluder Object欄は追加対象用のstaging selectorとして扱います。
Legacy Region Registry
Legacy Reveal RegionsはKJETH_RevealRegionで管理します。
主なPropertyはname、enabled、vertex_group、shape_mode、strength、weight_threshold、depth_marginなどです。
Superellipse関連ParameterもLegacy compatibilityのため残します。
主なProperty
enabledはGlobal Reveal Gateです。
auto_updateはHandlerによる自動更新を制御します。
transform_broadphase_cullingはTransform時のConservative Cullを制御します。
reveal_modeはTarget Vertex GroupsとLegacy Regionsを切り替えます。
character_objectはTarget stagingまたはfallbackです。
target_group_weight_thresholdはVertex Group membership thresholdです。
target_projection_geometryはExact SurfaceとRadius Modeを切り替えます。
target_projection_radiusはRadius Mode専用です。
target_projection_featherもRadius Mode専用です。
target_depth_marginはOccluderからTargetまでのDepth条件です。
require_outward_normalはSurface Facing条件です。
normal_facing_thresholdはFacing Dot Thresholdです。
global_reveal_strengthはFinal Reveal Strengthです。
isolate_shared_materialsはShared Materialの所有関係を制御します。
set_ditheredはEEVEE Dithered状態を制御します。
solid_assistはSolid Overlayを制御します。
solid_opacityはOverlay Alphaです。
debug_show_axesはDebug Axis表示です。


コメントを残す