Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

エッジを共有する面が3っつ以上の場合、非水密エラーが発生 #16

Open
sansoohan opened this issue Feb 18, 2025 · 2 comments
Labels

Comments

@sansoohan
Copy link
Collaborator

sansoohan commented Feb 18, 2025

事象

  • エッジを共有する面が3っつ以上の場合、非水密エラーが発生

Image

  • このように、緑のエッジが3っつ以上(この例は4っつ)の面が共有するから問題が発生する。

Image

bldg-4c98f1df-c9b7-4599-956e-acb301a5f4ce.obj をちょっとだけ修正したもの

# Vertex
v -9957.440000 -51914.500000 8.760000
v -9966.792000 -51914.147265 6.600000
v -9963.685000 -51917.815000 9.323333
v -9960.645000 -51917.975000 9.470000
v -9957.465053 -51915.183067 8.540000
v -9957.727944 -51922.350721 8.335000
v -9967.045000 -51920.855000 7.353333
v -9963.758615 -51921.082937 8.540000
v -9967.780000 -51914.110000 5.140000
v -9968.070000 -51921.960000 6.120000
v -9963.797797 -51922.121781 8.510000
v -9960.940000 -51922.230000 3.360000
v -9963.758615 -51921.082937 2.660000
v -9963.797797 -51922.121781 2.550000
v -9957.727944 -51922.350721 3.360000
v -9957.780000 -51923.770000 4.960000
v -9960.940000 -51922.230000 4.980000
v -9961.000000 -51923.650000 4.880000
v -9957.727944 -51922.350721 5.410000
v -9957.440000 -51914.500000 1.530000
v -9966.792000 -51914.147265 1.530000
v -9957.465053 -51915.183067 1.530000
v -9957.727944 -51922.350721 1.530000
v -9967.780000 -51914.110000 1.530000
v -9968.070000 -51921.960000 1.530000
v -9963.797797 -51922.121781 1.530000
v -9960.940000 -51922.230000 1.530000
v -9961.000000 -51923.650000 1.530000
v -9957.780000 -51923.770000 1.530000


# Roof
f 1 2 3
f 3 4 1
f 4 5 1
f 5 4 6
f 3 7 8
f 4 3 8
f 4 8 6
f 9 10 7
f 2 9 7
f 7 11 8
f 7 10 11
f 3 2 7
f 12 13 14
f 15 13 12
f 16 17 18
f 16 19 17

# Wall
f 2 1 20 21
f 5 22 20 1
f 10 9 24 25
f 11 10 25 26 14
f 11 14 13 8
f 21 24 9 2
f 14 26 27 12
f 28 18 17 12 27
f 18 28 29 16

# Ground
f 27 26 25 24 21 20 22 23 29 28


# Material definition
mtllib material.mtl

# Use the material
usemtl red_color

f 22 5 6 19 15 23
f 13 15 19 6 8

f 17 19 15 12
f 19 16 29 23 15

問題分析のためのテクスチャー
material.mtl

# Material file for red color
newmtl red_color
Ka 1.0 0.0 0.0  # Ambient color (red)
Kd 1.0 0.0 0.0  # Diffuse color (red)
Ks 0.5 0.5 0.5  # Specular color
Ns 10            # Shininess

再現方法

  • param.json をコピー
  • 川崎データーをダウンロード
  • CityGML ファイルは以下をセット。
    /home/ubuntu/lod2_data/kawazaki/CityGML/53392537_bldg_6697_op.gml
    /home/ubuntu/lod2_data/kawazaki/CityGML/53392538_bldg_6697_op.gml
    /home/ubuntu/lod2_data/kawazaki/CityGML/53392544_bldg_6697_op.gml
    /home/ubuntu/lod2_data/kawazaki/CityGML/53392547_bldg_6697_op.gml
    /home/ubuntu/lod2_data/kawazaki/CityGML/53392548_bldg_6697_op.gml
    /home/ubuntu/lod2_data/kawazaki/CityGML/53392555_bldg_6697_op.gml
    
  • param.json で実行。
  • _check_solid ERROR エラーを確認
  • debug フォルダーから bldg-4c98f1df-c9b7-4599-956e-acb301a5f4ce を確認
@sansoohan
Copy link
Collaborator Author

問題分析結果

壁面のエッジ (15, 19) が 4回 共有されている。
Non-manifold edges : エッジを共有する面が3つ以上になってはいけない。

@sansoohan
Copy link
Collaborator Author

sansoohan commented Feb 27, 2025

デバッグしやすい環境を作ること

この問題を解決する前に、まず壁面の中間点を追加することを推奨する。

Image

HouseModel#_rectify が勝手に中間点を作る。_rectify 処理以前に、中間点を作って置いた方がいい。

壁面の中間点追加の参考:

i = find_onsegment_point(edge_3d, skip_list)

@sansoohan sansoohan changed the title 原因不明の非水密エラー エッジを共有する面が3っつ以上の場合、非水密エラーが発生 Feb 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant