レイマーチング法を使った3D形状ビューアーを作成しました。
以下の機能を実装しています:
実装した形状:
立方体(Box)
球(Sphere)
円柱(Cylinder)
楕円体(Ellipsoid)
正八面体(Octahedron)- 多角形の代表として
円錐(Cone)
直方体(Rectangle Box)
コントロール機能:
形状選択:ドロップダウンメニューで形状を切り替え
水平回転(X軸):0°〜360°のスライダー
垂直回転(Y軸):0°〜360°のスライダー
カメラ距離:2.0〜8.0の範囲で調整可能
技術的な特徴:
レイマーチング法:各ピクセルからレイを飛ばし、距離関数を使って形状との交点を計算
距離関数(SDF):各形状に対応した数学的な距離関数を実装
リアルタイムレンダリング:WebGLを使用した高速な3D描画
ライティング:拡散反射、鏡面反射、環境光を含む基本的なライティング
法線計算:数値微分による法線ベクトルの計算
スライダーを動かすことで、リアルタイムに視点を変更でき、さまざまな角度から3D形状を観察できます。形状を切り替えて、それぞれの特徴的な形を確認してみてください。
prompt: 2つの基本立体を選択しこれらの集合演算して表示する機能を追加。演算は加算、減算、乗算を選択できるように
2つの基本立体の集合演算機能を追加しました!新しい機能は以下の通りです: 新機能 2つの形状制御: 形状1と形状2をそれぞれ独立して選択可能 各形状の位置をX、Y、Z軸で個別に調整可能 集合演算: 加算(Union):2つの形状を結合 減算(Subtract):形状1から形状2を引く(ブーリアン差) 乗算(Intersect):2つの形状の重なり部分のみ表示 追加制御: 演算有効化チェックボックス:ONで2つの形状を演算、OFFで形状1のみ表示 スムージング:演算境界の滑らかさを調整(0で鋭利、値が大きいほど滑らか) 視覚的改善: 形状1は青系、形状2はオレンジ系の色で区別 演算結果は距離に応じて色がブレンド UIを整理してセクション別に分類 使用例 加算:球と立方体を重ねて融合させる 減算:大きな球から小さな立方体の穴を開ける 乗算:球と立方体の重なり部分だけを表示 スライダーを動かして2つの形状の位置を調整し、さまざまな演算結果を試してみてください。スムージング値を変えると、境界の表現も変化