ゲーム開発の話

絵描きの知り合いとブラウザゲーを作った。カジュアルな箱庭風パズルゲーム「Flora」です。 https://riyaaaaa.github.io/Flora-web/ ゲーム開発を完走した感想としては、会社で一緒に頑張ってくれてるチームメンバーへ圧倒的感謝という気持ちでいっぱいだ。 …

医龍という漫画は歪んだ天才を主人公とした作品として構成が最高すぎる

皆は医龍という漫画を読んだことがあるだろうか? 実写ドラマの方はかなり有名なので、名前だけは聞いたことがある方も多いとは思われるが、私は身の回りで原作の漫画を読んだことがある人を見かけたことはない。 だが、私は人生を通して何度も読み返したく…

英語の勉強の話その1 英語の難易度って reading < speaking < listeningだよな

英語の勉強を始めて1年くらい経つ気がする なんか1年って書くとすごいやってる感が出てるが、30分の英会話を月に6~7回やるのと、海外のVTuberの配信を見たり、英語のゲームをプレイする、くらいの、あまり精神的な負担にならないものを気楽にやってい…

2021年を振り返る

一人暮らしをしていると、年越しはいつもふと気が付いたときに終わっていて、PCの日時表示を見て年が変わったことを実感するだけ。 今回もスカイリムをしていたら気がついたら24時20分くらいだった。 2022年の誕生日をもって、私は26歳、つまり20代後半に突…

猫飼育における初期費用まとめ

知人から保護した猫を引き取った。 二十歳くらいのときに、広いマンションで猫を暮らすことが人生のゴールだなと漠然と考えていたので、ゴールを迎えたことになる。 あとはゆっくり終わりに向かっていくだけである。 ところで、猫を飼いたい人間が周りにいっ…

近況、家を買った話など

人生は爆速で過ぎて行き、気づいたら今月で20代の折り返し地点となる25歳になった。 私は小学生の時からメイプルストーリーをはじめとするいくつかのオンラインゲームをやっていたし、社会に出たのも20歳だったので、学校以外で身の回りの人間が年上というの…

蛇を飼い始めて1年余りが経った

皆さん蛇を飼っていますか? 蛇は令和で今最も注目されているペットです。ソースはありません。蛇を飼っていると話すとギョっとされることが多々あるのですが、ほ乳類よりもよっぽど扱いやすく、初心者向けのペットだと思います。 もちろん種類によって様々…

0からRaspberry Pi 4でさくっとマイクラサーバーを建てるまで

知人からマイクラサーバーを建ててくれと頼まれたから仕方なく0から環境構築した話をするよ。私はケチな上にパソコンの寿命管理にうるさいので(すぐ壊れるから)、自分のメインマシンを24時間稼働させるのは絶対嫌だし、電気代もかけたくなかった。 こうい…

結局オブジェクト指向とはいったいなんなのかとか、ゲームの設計に関して最近思うこと

2兆年ぶりにブログ記事を書いている気がする。レンダリングエンジンの開発に飽きたからこのブログはほぼ用なしになってしまった。ただ、最近プライベートでプログラムを書いてなさすぎるので、リハビリに再開するのもいいかもしれない。プログラムを書くのは…

グローバルイルミネーションのためのフォトンマップ実装①

グローバルイルミネーション(Global Illumination: GI)とは、現実世界における間接光を表現するためのアプローチである。(あるいは、間接光そのものを指す) 本来、現実のライティングというものは、無限にも等しい膨大な量のフォトンと、制限のないバウン…

8分木空間でのレイトレースのコリジョンリスト収集処理を見直して10倍速くした

フォトンマッピングの実装で、フォトンを1万~10万くらいバラまく処理が死ぬほど重かったので、8分木空間におけるレイトレースの処理を見直した。 8分木はもとより衝突判定を高速にするための空間分割アルゴリズムだが、レイトレースをする際に、衝突判定を…

その気になれば前提知識無し機材無しの無の状態から2週間で美少女VTuberになれたという話

最近、美少女になりました。 いつもは、このブログでは文語体を用いてプログラミングに関する記事を投稿しているのですが、今回はあえて口語体で書くことにします。 なんやかんやあって、美少女のアバターを使ってYoutubeに動画を投稿してしまうという事件を…

Boost.Spirit.QiによるXモデルパーザ実装の紹介①

※先に断っておきますがバイナリフォーマット、スキンメッシュ及びアニメーションのパーズは未実装です。 DirectX11からはD3DX系統の補助関数的なAPIはすべて排除されたため、シェーダーのコンパイル、テクスチャの読み込み、モデルの読み込みはユーザーが実…

ミップマップを使ってラフネスのある材質のリフレクションを実装した

以前、環境マップを用いて、リフレクションを実装した。Cube Map Reflectionを実装した - riyaaaaasan’s blog 上記の記事では完全鏡面に限定した実装となっており、マテリアルのラフネス値を無視した綺麗で鮮明なリフレクションしか実現できていない。 この…

ジオメトリシェーダでライン描画

DirectXには一応、線を描画する機能がある。 プリミティブ型にラインリストやラインストリップを指定すれば、頂点バッファの頂点を線として描画してくれる。ただし、その線には太さという概念がない。線を描くならできればそれなりの太さが欲しい。太さのも…

レンダリングエンジンのコアロジック部分からDirectXの依存性を排除した

世の中、マルチプラットフォームが当たり前になってきた。 ぶっちゃけ、マルチプラットフォームにする必要性はまったく感じなかったのだが(再三言っているが、プロダクト開発ではなく、あくまでゲームエンジニアとしての研鑽のためエンジンを開発している)…

Hashed-Octree(ハッシュ化八分木)による空間分割を実装した

そろそろレイトレがしたい。具体的に言えばフォトンマッピングでGIを実装したい。 だが、フォトンマッピングを実装するには現状あまりにも足りないものが多すぎる。 その最たるものが、高速な衝突判定アルゴリズムだ。 シンプルに設計されたレイトレ専用のア…

Variance Shadow Maps(分散シャドウマップ)を実装した

Variance Shadow Maps(分散シャドウマップ)を実装しようと思う。 これはソフトシャドウの実装の一つで、シャドウのエッジをなんかいい感じにする技術だ。まず、普通のシャドウマップの実装を再掲する。 bool IsVisibleFromDirectionalLight(float4 shadowC…

Cube Map Reflectionを実装した

Cube Map Reflectionを実装した。前回、スカイボックスを実装したが、そのスカイボックスのリソースであるキューブテクスチャを環境マップとして用いて、リフレクションを実装することにする。といっても、一応、拡張性を持たせるために、シーン内に複数の環…

SkyBoxを実装した

SkyBoxを実装した。 といっても、リフレクションの前哨戦みたいなものだが。 リフレクションは基本的には環境マップで実装される。理想的には、そのオブジェクトを中心とする環境マップを一個一個作ることだが、動的な環境マップとなるとあまりにも現実的で…

Omnidirectional Shadow Mapping(全方位シャドウマップ)を実装した

全方位シャドウマップを実装した。 資料が少なくて実装が結構手間だった。 こういうときよく頼りにしているもんしょという方のブログでは、全方位マップは双方物曲面かつディファードレンダリングでの実装だったので、参考にできなかった。私はキューブマッ…

HLSLのTextureCubeの情報が少なすぎる

ランス10やってたら気づいたら土日が終わっていた さて、ポイントライトの全方位シャドウや、リフレクション用の環境マップの実装をしているのだが HLSLのTextureCubeの情報が少なすぎる c++ - Direct3D 11: How to access cube map faces in memory on the …

レンダリングエンジン進捗まとめ

前回のポエムが長くなり過ぎたので二回に分けた。 現在、レンダリングエンジンに対するコミット数は104。 簡単に振り返ってみる。 1日目あたり 最初の方のコミットは、なんというか、コピペコードばかりだ。酷過ぎる。とりあえず動くところ見るためとはいえ…

レンダリングエンジンの開発を始めた。

レンダリングエンジンの開発を始めた。 今は割とやる気があるので、このやる気が継続するよう、開発日記をつけるためにブログの開設をした。 私はゲームプログラマであるので、レンダリングとは一般的なほかのエンジニアよりも縁が深い立ち位置だが、今まで…