茂加部珈琲店

主にtech関連のメモ置き場です

単純な三角メッシュ

はてなのマークダウンの練習
CGの入門書に書いてあるようなやつです

メッシュ構造

メッシュ構造は3DCGで利用される3Dモデルの表現法です.
ここでは、シンプルなobjファイルで使われるような、頂点+三角形で構成されるメッシュ構造を書いてみました

template <typename T>
struct Vertex{  //頂点
    //...コンストラクタなど...//
    tvec3<T> position;  //位置座標
};

template <typename T>
struct Face{  //面
    //...コンストラクタなど...//
    std::shared_ptr<Vertex<T>> verticies[3]; //三頂点へのポインタ
    tvec3<T> normal;  //法線
};

template <typename T>
struct Mesh{  //メッシュ
    //...コンストラクタなど..//
    std::vector<std::shared_ptr<Vertex<T>>> verticies; //頂点へのポインタリスト
    std::vector<std::shared_ptr<Face<T>>> faces;  //面へのポインタリスト
};

各面はその三角形を構成する3頂点へのポインタを持ちます.
ついでに法線まで計算する気まんまんですが、不要な場合はなくても良いですね.
関数を全部削ってしまいましたが、簡単なので.
リソース開放はshared_ptrとかに任せちゃうのがナウなヤングのやり方じゃないでしょうか.
もっと複雑なハーフエッジ構造などは少し凝った構築をしないといけなくて大変で、それに対する最適化手法も色々あります.
CGは奥が深いですね.

Fiio D03Kで遊ぶ

Fiio D03K

Fiio D03Kは安価なSPDIF入力のDACです.
入力は192KHz,24bitで光、同軸入力をサポートします.
どこかに192KHzは同軸のみと書いてありましたが、私の環境では光でも192KHz/24bitを受けれています.
オヤイデが代理店をやってるみたいです.高級オーディオの印象がありますが、こんなところで名前を見るとは思いませんでした.

D03KのIC構成は
CS8416 -> CS8416 -> LVM358
となっております.オペアンプが汎用品ですので、このあたりを変えて遊ぶことができます.

詳しい情報はこのページに載っています. よくできているので是非参考にしてみてください.

コンデンサオペアンプの交換

回路の定数を変更しない簡単な強化を行ってみました.

電源部の470ufをOSコン(470uf)に変更.元のコンデンサロープロファイル品なので、高さに注意してください.
私は頑張ってねじ込みました...

オペアンプはLVM358からOPA2353,OPA2211を試しました.
どちらも聴いた感じちゃんと動いているようですが、OPA2211では電源からノイズが乗りやすくなった気もします.
結局、音質面で高性能なOPA2211をチョイスしました. 動作電圧的にはギリギリかもしれません.
その他にも、AD8656やLME49721なんかも動くのかな?試してないですが.
パッケージはSOですのでMSOP版を買わないように注意しましょう.

5千円以内でこの音質が楽しめるなら十分コストパフォーマンスに優れると言えそうです.

本格的に電子工作に手を出すならオシロスコープがほしいものです.入門機でも結構いい値段するんですよね.
ではでは.