読者です 読者をやめる 読者になる 読者になる

人生初心者の雑記

すべてにおいてド素人な人がいろんなことを書くよ

はじめに

STM さすりか (@Retwimoko) | Twitter

Gitmoko · GitHub

いろんなことに興味を持つけど何も残らない

世の中にはいろんな界隈があるわけで、深く入ろうとしても入り方がわからず終い

そういうなんも持ってない俺がなんか残そうとする雑記帳

 

いろんなことについて書くけど、その分野の人から見ると的外れで糞みたいな内容

それでも俺は深く知ろうとして見たまま感じたまま間違ったままに書く

 

もし俺が標準レベルに達したら、この雑記帳は、素人から標準へのある道のりを示すものになってほしいなー

 

教科書

http://www.red.oit-net.jp/tatsuya/java/#BBS
C言語:ソケット(Socket)でネットワークプログラム入門
三分ネットワーク
http://www5e.biglobe.ne.jp/%257eaji/3min/

ソフトウェア開発者のFPGA入門 補足ノート1 - muo-notes

レイトレ
パストレの基礎概念のthree-point formについてshikihuiku.wordpress.com

継承したクラスのXmlシリアライズ

インタフェースクラスであるメンバをシリアライズする場合
C# XML serialization of derived classes - Stack Overflow
[XmlInclude(typof(classname))}




インタフェースクラスの要素のリストをシリアライズする場合
d.hatena.ne.jp

[XmlArrayItem(typeof(Concreteclass))]
public List<Interfaceclass>

逆関数法とパストレ

レンダリングにおけるimportance samplingの基礎shikihuiku.wordpress.com
パストレではある点からある方向への放射輝度を計算するときに。球面上の点を一様にサンプリングする必要がある。逆関数法が関係してるのだが、初めて見たときはよくわからんかった。


z軸のサンプリングについて説明する。
1.満たさないといけないもの
z=1-cosΘ
P(Z<=z)=z

2.同値
z=1-cosΘ
P(1-cos日<=1-cosΘ)=1-cosΘ (日は角度の確率変数のつもり)

3.同値
z=1-cosΘ
P(日<=Θ)=1-cosΘ

4.1-cosΘのような乱数を生成したいので、
P(U<=u)=u
からFを作用し
P(F(U)<=x)=1-cosx
をつくることを考える。


5.①P(U<=u)=u
②P(F(U)<=x)=1-cosx
が同時に成り立つとする

6.①より、Pの両辺にFを作用して
P(F(U)<=F(u))=u

7.②においてx=F(u)のとき
P(F(U)<=F(u))=1-cosF(u)

8.6,7の右辺より
u=1-cosF(u)

9.変形
F(u) = arccos(1-u)
これは1-cosxの逆関数である。


4~9までの手順が逆関数法の導出と一致してる。たぶん。

また、球面上のサンプリングにおけるx,yの取り方はもう少し難しい。
レンダリングにおけるimportance samplingの基礎shikihuiku.wordpress.com



気づき
1をみてて、F(T)がF-1で分布するとき、Tは一様分布なんじゃねとおもった。(逆関数法の逆)
(1において、z=1-cosΘでzを一様分布させようとして、9で日=1-cosu になったから)

a[逆関数]
P(U<=u)=u-> P(F(U)<=x)=F-1(x)

b[逆関数法の逆]
P(F(U)<=x)=F-1(x) -> P(U<=u)=u

逆の証明
同値(左側のPの中身にF-1を作用し、右側のPにFを作用する)
P(U<=F-1(x))=F-1(x) -> P(F(U)<=F(u))=u

同値(変数の名前の調整)
P(U<=t)=t -> P(F(U)<=k)=F-1(k) (もともとの逆関数法と主張が一致)


ファッ!?
よって逆関数法は、主張の逆も成り立つ。

これらを使うと以下のことが言える。


一様乱数UにFを作用するとF-1(x)の乱数ができる


Z=G(T)を一様乱数にさせるには、bよりT=G-1(Z)がGで分布するようにすればよい(F=G-1)。TをGで分布させるには、aより(F=G-1)
T=G-1(U)で生成すればよい(Uは一様乱数)

つかいわけていきましょう

VisualStudio 覚書

gitでaddしたファイルを取り消して変更ファイルをコミットした直後の状態に戻す
qiita.com

VisualStudioではブランチを右クリック選択でreset

VisualStudioでprojectのリターゲット
上メニューバーのプロジェクト項目にリターゲット項目がある。

ソースコードでスタティックライブラリの制御
#pragma comment(lib, "xxx.lib")