monoTone

Unity / Rust / Shader / 音楽や数学や計算機が好きなようです。 …

monoTone

Unity / Rust / Shader / 音楽や数学や計算機が好きなようです。 / 日々の勉強記録はScrapBoxに書いています: https://scrapbox.io/myStudyLogsDirectory/

マガジン

  • 日記集

  • いい感じの記事群

    役立ちそうだなと主観的に思った自分の記事たちをまとめていきます。

  • Shaderリーディングまとめ

    Shaderリーディングをまとめたもの

最近の記事

日記 2024 0405 「やりたいこと」を再考する

世間がよく言っている「やりたいこと」 に対する欺瞞性がずっと自分の頭をもたげていたが,なんとなくその正体が自分の中で言語ができた気がする.以下に記す. しかし,金にならなくてもいいからやりたい は人間として非常に重要な素質であると思う. それがその人らしさを作り,その人からしか立ち現れないものが創出されるからである. それを蓄積していく内に,回り回って仕事などの成果を出さなければならない場面になった時にも突出した才能として立ち現れるものだと信じている.

    • 日記1027 2023 :地味な作業も必要?

      自分は今まで人間がやるべきではない、地味な仕事(作業やブルシットジョブ)は出来る限り全てなくすべきだと考えていた。 例えば、自分はアイデアの構想や、それの検証及び実装は創造的であると考える一方で、パワポの作成等は「地味な作業」であると考えていた。 パワポの図の作成等は、見さすさのためだけに0.1ミリのズレもないように図の位置を調整することに苦心している。人に伝えるためとはいえ、こんなことに1日の何時間をも費やしていることに嫌気がさす。 しかし、そういった作業も、最近はそ

      • Shader : SDFについての備忘録

        SDFを”距離場”として捉えてみる。つまり$${f_{sdf}: \R^2 →\R }$$という意味 ここで、このスカラー場$${f_{sdf}: \R^2 →\R }$$の勾配を取ってみたいという願望が湧いてくる。 // .x = f(p)// .y = ∂f(p)/∂x// .z = ∂f(p)/∂y// .yz = ∇f(p) with ‖∇f(p)‖ = 1vec3 sdgBox( in vec2 p, in vec2 b, float ra ){ vec2

        • 日記 0930_2023: モノを作る,理論を積む,そのためにメモを溜める.

          最近,研究を通して,堅牢な理論で下支えする必要性と,そのためのメモを書き溜めることの重要性を身体で覚えさせられてる. なんというか,情報収集に使った時間を溶かさないために,最後にメモとして使った時間を具象化する行為ってとっても大事だよね.とかそういう当たり前の話 仕事で「これについて調べてください」って言われて,2時間資料読んで「読みました!」っていっても,「あなた学生なの?」って言われるのと同じこと. ちなみに”堅牢な理論で下支えする”のは重要ではなく,必要なこと.”

        日記 2024 0405 「やりたいこと」を再考する

        マガジン

        • 日記集
          11本
        • いい感じの記事群
          3本
        • Shaderリーディングまとめ
          5本

        記事

          日記0930_2023 : 英語を読む方法(暫定)

          学部4年になり、初めは与えられた論文だけを読んでいたが、最近は自分で論文を探してきて読むようになってきた。 このアカデミアという世界ではどうしても英語というものを克服せざるを得ない。 極論DeepLやGPTに流して仕舞えばいいのだが、前者は日本語訳がやはり少しぎこちなくて読み辛いし、後者はそれが本当に正しいのかを結局自分で最終確認しなければならない。その上現時点では、PDFを渡せば全て翻訳や正しい要約をしてくれる機能が安価または無料で使用できる状況ではない。(

          日記0930_2023 : 英語を読む方法(暫定)

          日記0814

          人生(仕事)について 構造を構築する(経営者) リスクを取る(経営者) 現実にある解決したい問題の要件を整理する(コンサル、エンジニア) 言い換えると、現実にあるオブジェクトを整理して形而上の問題に置き換える。 4. 整理された要件(問題)を解く。(エンジニア) [3. 4.]をやればいいのだが、あとは気持ちの問題がある。 気持ちがついてかなければ3.が定義できたとしても手が動かず、無限に時間を浪費してしまう。 この気持ちについてだが、とりあえずさ

          日記0728 : 抽象のキャッチボール

          やはり頭いい人と話すのは気持ち良い。 そうでない人は「抽象の1」だけを話せば次に進めることを、1から10まで具体を延々と話すから眠くなるし何話してたかわからなくなるから無駄が多すぎる。それに加えて具体を延々と話してその文章が終わらないので全然「それはわかったから次にいこう」という意思表示としての話の中断ができない。これがストレスフル。 頭がいい人とは抽象の1を適宜キャッチボールして投げ合うからどんどん議論が進むし、じゃあ次はこうしましょうがすぐに決まるし本当に楽。 抽象

          日記0728 : 抽象のキャッチボール

          日記0727 : やりたいこととノブレスオブリージュの狭間

          ふと将来どの職種につくかと問われた。 「ソフトウェア(プログラム)を使って何でも作れるのは前提として、でもそれだけではレッドオーシャン感があるので、それに加えて物理世界に何か作用することをやりたいです」みたいな感じに答えたがやはりなんだかフワッとしてる感は拭えない。いやこれは本心だが、この本心に該当する職業をただ一つに特定することはできない。 もっといえば研究職でもあれば開発職でもあれば、アーティスト的なこともやりたい。 自分の興味関心はComputerGraphicsに

          日記0727 : やりたいこととノブレスオブリージュの狭間

          今日のShaderリーディング0721

          rot(極座標系)で流れる川の向きを指定、widthとかで幅も指定。 反射的表現もfetchしてくるUV座標を前フレームとほんのちょっとしかずらしてないからそれっぽく見えてるだけ。(iTime引数を与えたfbmによる動的かつ連続的ノイズでUVを歪ませる( fbm((uv, time)) )) まあ逆にそれほど歪ませるとか法線マップとかによる視覚の騙せやすさはすごいということ 歪む感覚とは…xy=(20,43)の座標のピクセルを取りに行く→本来はUV座標(20/wi

          今日のShaderリーディング0721

          日記0721

          脳内に自分特有のモデルを作る。言語化して書き残すことで、それを忘れないようにする。再現性を作り、未来の自分の能力を確固たるものとする。 ストーリーを作る。そのことで初めてイメージが生まれる。ストーリーがあれば、すぐ諦めて、イメージがお釈迦になるようなことが少ない。 ストーリーに沿わなければ相手につつかれる。逆にストーリーにさえ沿っていれば納得させられる。たとえ恣意的な選択をしたとしても、それがストーリー上のものであればその限りだ。 たとえストーリーは本質的な達成したいこ

          今日のShaderリーディング0718

          例のごとくまずレイマーチで距離dを得る。レイマーチは連続的ノイズで十分にゆがめられた三次元スカラー場(d)を測定する。 その後オブジェクトに当たりそうなものの、dが遠い(大きい)ときに限り密度が低い(すぐレイマーチが通過した)と判断し、色が加算されず赤色かつ透明に仕上がる。 dが近い(小さい)ときに限り密度が高い(何回やってもレイマーチが進めない)と判断し、色が加算されて白色かつ非透明に仕上げる レイマーチで 「Objに当たる方向であったが、dが大きくてObjを通過してし

          今日のShaderリーディング0718

          日記0717

          初めて自分でゼロからShaderを書いた。 なぜこれほどShaderという魔術に惹かれているのか考えた。 それはすなわち、表現を作る過程の行為が非常に工学的であるからに他ならない。 つまり脳内でイメージした表現を全て空間上の数値に置き換える。そしてそれを実現するための場の生成を数学的に構築する。 それらを発散しないように、意図した通りに動かす、状態遷移などを加えオートマトンの機構を作る。 これらの過程では制御工学、形式言語とオートマトン、集合論、数学の知識を用いる。このよ

          uv座標とShaderの関連性

          「3Dモデルの各頂点には、それぞれUV座標が割り当てられます。これにより、3Dモデル上の各頂点が2Dテクスチャ上のどの位置に対応するかが決定されます。 3Dモデル上の面(通常は三角形)は、これらの頂点と関連付けられたUV座標に基づいてテクスチャから「切り出され」、3Dモデルにマッピングされます。」 つまり 面に「何の」画像を「どのように(どこに)」貼り付けるかを規定するのがUV座標である。 一般的に画像は長方形であり、一方で物体(特に3Dオブジェクト)は三角形の面の集合体

          uv座標とShaderの関連性

          日記0714

          クラス継承の概念って素晴らしいように見えるけど実際コードリーディングすると、プロパティやメソッドの動作が別ファイルに書かれてあるからめちゃくちゃ全体構造(処理フロー)を把握しづらくなる。 そう考えると実装はさせない、型による意味論的な制約だけを与えるインターフェースやトレイトの概念は凄いなあと感じた。 データ構造ドリブン(数理形式とモデルドリブン)でプログラミングする Houdiniのプロシージャルみたいなイメージ。 実現したい表現、脳内のイメージを、「すべて数値に置き換

          今日のShaderリーディング0711

          スカラー場を例のごとく作ってObjを表現するのだが、その時に各Objにidを割り振って何のObjectをレンダーしてるのかわかるようにする。 各idに応じて反射の仕方や色など与えるマテリアル情報を変えることで任意の複雑な絵を生成できる 最後にRenderを複数回呼んでいるのは光の反射によってモノに背景が映りこむのを表現するため。(本質的にはRender一回でレイマーチング自体は完了する) なお光の反射なのでforで蓄積するときも+ではなく*である。(+だとすぐ1,1,1以

          今日のShaderリーディング0711

          今日のShaderリーディング 0710

          日々気になったShaderを読んでいって処理の解釈を述べていきます。毎日が理想だが、まあ無理しない程度に定期的にやっていきたい。 uvを歪ませる:動的かつ連続に歪ませる。 歪んだuvから距離場を作って、距離場の小さい箇所が色として表層する 以上。 距離場(スカラー場)を使ったレンダリングに対する自分の解釈はいつか記事としてまとめたい。

          今日のShaderリーディング 0710