マガジンのカバー画像

3D部

10
運営しているクリエイター

記事一覧

ハーフエッジ②~とりあえず表示するとこまでやるべーよの巻~

ChatGPT4くんはこのへんくらいから既にポンコツです。

OBJフォーマットOBJフォーマットは比較的シンプルなテキストベースのフォーマットですが、多くの異なるオプションや構造をサポートしています。以下は、実際のOBJファイルの扱いにおいて考慮すべきいくつかのエッジケースや機能です:

ノーマルベクトル (vn): 各頂点には、面の方向を示すノーマルベクトルが関連付けられる場合があります。これ

もっとみる

ハーフエッジ①

p5.jsとChatGPT4くんによる。
人類はたんぽぽを添えるがごとくコピペする。

ハーフエッジハーフエッジ構造(またはハーフエッジデータ構造)は、3Dメッシュデータの処理や編集のためのトポロジカルなデータ構造の一つです。特に、連続した面の集まりからなる多面体の表現において、その面、エッジ、頂点の関係を効率的に表現するのに役立ちます。
このデータ構造の基本的な考え方は、各エッジを二つの「ハーフ

もっとみる

Matrix3D(数式およびC#)


Matrix3Dデータ構造とコンストラクタ

public class Matrix3D { #region データ public double this[int i, int j] { get { if (i == 0 && j == 0) { return M00

もっとみる

Matrix2D(p5.js)

部分ごとデータとコンストラクタ

class Matrix2D { constructor(m00, m01, m10, m11) { this.M00 = m00; this.M01 = m01; this.M10 = m10; this.M11 = m11; } static makeFromRow(row1, row2) { return new Matr

もっとみる

Matrix2D(数式およびC#)


データ構造とコンストラクタデータ構造はdoubleを4つとする。

public class Matrix2D { public double this[int i, int j] { get { if (i == 0 && j == 0) { return M00; }

もっとみる

Matrix

まだテストすらしてません。

Matrix2DMatrix2D(数式およびC#)

Matrix2D(p5.js)

Matrix3DMatrix3D(数式およびC#)

Matrix4D

視錐台

簡単のためスクリーン=nearプレーンとされる。

nearのz値をN
farのz値をF
とすると

$$
\frac{x'}{x}=\frac{y'}{y}=\frac{z'}{z}=\frac{N}{z}
$$

である。ここで
(x, y, z)はパース変換すべき3Dモデルの頂点座標。
(x', y', z')はx, yを焼き付けたい平面上の座標であり、
焼き付けるべき平面がスクリーン(=n

もっとみる

[3D]座標の変換、及び座標系の変換

※この記事の正当性は保障されません。

※2次元座標で記述しておりますが、必要に応じて3次元、4次元、あるいは同時座標に読み替えてください。

2次元の座標系は2つの基底ベクトルの組からなる。
系Aは最も基本的な基底ベクトル(1,0)(0,1)からなるとする。

系はただのベクトルの組であるので行列で表すことができる。ここでは系を行列で表す時は縦ベクトルとして格納することを約束する。

座標系がた

もっとみる

[3D]一点透視図を極めんとする者~無限遠点に向かって走れの巻~

このページは研究中のものです。

以下のようなヤツを3D関連のAPI使わずに作りたい。

適当なパラメータtで作る場合。各座標から消失点にベクトルを射出し、あるいは消失点から各座標にベクトルを射出し、t値でそのベクトルを切る。このやり方はカメラ情報どころか建物の奥行情報(z座標)すらいらなきもの。

必要なのはパースを掛けたい箱の前面のx,y座標(上図の場合、4つ頂点のx,y)
適当な消失点のx,

もっとみる