メモ

FINAL STAGE制作記録

GW期間中から21日間でFINAL STAGEというゲームを作りました。 ゲームを公開したツイートはこちらです。 GWあたりからUnity, Houdini, Substance Designerの学習と実践がてら作っていたゲームを公開しました!そこそこやりがいがある感じになったのでオンライ…

マイクロファセットBRDF

Shader - Shadertoy BETA 今までいろんなShadertoyの作品で使ってきてましたが、正直理解が浅すぎたので改めていろいろな記事を参考に再実装しました。 用語の整理等もでき始めたのでそこそこ理解が進んだ気がします。 特にこのシリーズはとても参考にさせて…

Unity HDRPをカスタマイズしてアウトラインパスを追加する

HDRPを弄れる環境はこちらで既に整えました nanka.hateblo.jp 今回は実際にカスタマイズして周作に最適なアウトラインパスを追加してみます。(Render Graphがリリースされたらここの情報は無になります(多分...)) 使用するバージョン Unity 2019.2.0f1 H…

Unity HDRPのコードを弄れる環境を整える

カスタマイズするか不明ですが、UPMでインストールしたパッケージはカスタマイズしずらいので、公式リポジトリをforkした物を使うプロジェクトを準備しておく。 フォークする 後で使うのでHDRPが含まれているこちらのSRP公式リポジトリをforkする。 github.c…

LWRP学習 レンダリングパスを追加する

そろそろUnityも触らないとなぁと思ったので、LWRPを少しずつ学習していこうと思います。 手始めに、目標を達成するためにレンダリングパスを追加してみます。 今回はいずれシャドウマップを使ってエフェクトを作成したかったので、Screen Space Shadowパス…

Shader Graphのremapノードが便利だった

最近Shader Graphを触る機会があるので、いろいろお試しで作っていたんですが、remapノードというのが便利だったのでShaderToyとかでも今後使っていこうと思ってます。 github.com float remap(float val, float inMin, float inMax, float outMin, float ou…

二次元ベクトルに垂直なベクトル

必要だったのでメモ 二次元ベクトルであれば、90度回転させると垂直なベクトルになります(当たり前) 90度の回転であれば、行列計算の結果がコンポーネントと符号の入れ替えになるため、わざわざ回転行列を用意する必要はなく vertical = vec2(-vec.y, vec.x)…

windowsノートPC(XPS15)でイヤホンで聞いた時の音が急におかしくなった

設定をいじった記憶もないし、元に戻す設定を探しても無いしで困り果てたので 結局ドライバーを入れ直して解決した サウンドのドライバをアンインストール ハードウェア変更のスキャンで再インストール

TTFについて調べていた

2週間ほどTTFというフォントのデータ形式を使っていろいろやっていたので近いうちにまとめたい

ファンクションキーが効かなくなっていた

この前新しく買ったノートパソコンはWindows10でvisual stuidoやvscodeを使用しているときにF5でビルド開始できなくなっていて なんでだろう?と思っていたのですが、特に調べもせずにメニューをポチポチクリックして実行していました 今日もポチポチ押して…

Renoiseと4klangで作成した楽曲をexeで再生する

デモシーン制作では音楽も重要なので今週は音楽関連を学んでいました 検討した方法としては 映像同様シェーダーで生成する shadertoyでは音楽を生成するシェーダーが書けたりしますよね 4klang等の軽量ソフトシンセを使用する 4kデモシーンではこちらが一般…

「error LNK2001: 外部シンボル "_fltused" は未解決です」を解決する

小さいexeを作っているときに _fltused が未解決だからどーのというエラーが出てしまってビルドできなくなってしまいました。。 ググると↓のページを見つけて コスミー報告書[社外秘] - CSTLを使ってDLLを小さくするっていう話 EXTERN_C int _fltused = 0x98…

windowsのchromeでglslのコンパイルが遅すぎるのでANGLEを切る

最近shadertoyでシェーダーを書いてるんですが かなり肥大化してきて、コンパイルに20秒ぐらいかかる & たまにブラウザがクラッシュするという問題が発生していました windowsのchromeはOpenGL ESがANGLE経由で動いているのでglslコードがhlslコードに変換さ…

crinklerとvisual studio 2017で400byteのexeを作る

最近4kbデモを作りたくてグラフィック面でいろいろ勉強していたんですが、今週は小さい実行ファイルを生成する手法を学びました 開発環境 visual studio 2017 comunity crinkler20a 空のプロジェクトを作成する 最近めっきりvisual studioを触る機会がなかっ…

モザイクフィルタを作ってみたところ不可解な境界線が現れてしまいました

画像をモザイクにしようと思ってこんなシェーダーを作成していました uniform sampler2D tex; void main() { vec2 uv = floor(texCoord * 30.0) / 30.0; gl_FragColor = texture2D(tex, uv); } 実際に使ってみると↓のような見た目になり、なにやらモザイクの…

シェーダーで条件分岐は遅いらしいのでベクトル演算に置き換えようとしてできなかった話

一般的にシェーダーでの条件分岐は遅いという話がある 今回作ったシェーダーではブレンドモードや使用するマスクのチャンネルをアプリから送信してシェーダー内で利用するということをした これを条件分岐を使って素直に実装するとこんな感じになる(空で書…

Unityのマテリアルエディタ拡張でテクスチャのプロパティを表示する

最近Unityを触っていてマテリアルエディタを拡張したくなったのでテクスチャのプロパティを表示するところから始めてみた 最初は自前でUIを組み立ててどうやらするのかと思ってその方面で調べていたけど、標準のテクスチャプロパティのスタイルであれば Text…

windowsにgccをインストールするメモ

go-glというgolangのopenglラッパーをgo getしようとしたところ、cgoを利用しているようでgccが必要という旨が表示されたのでインストールした MSYS2/MinGW-w64 (64bit/32bit) インストール手順 メモ · GitHub こちらをみて64bitMsys2インストール pacman -S…

ボクセルコーントレーシングの2bounce以上について考えていた

今日はボクセルコーントレーシングで2Bounce以上はどうやって実現するんだろうと考えてました unityで有名なこちらのアセットを30分ほど眺めてみたところ、どうやらフィードバックループによって実現しているみたいでした github.com フレーム間で交互にボク…

apacheからnginxに乗り換える2

昨日の続き php-fpmをインストールする php5.6を使っているのでremiリポジトリを追加後インストールする sudo yum install yum --enablerepo=remi-php56,remi,epel install php-fpm その他は下記記事を参考に設定 qiita.com /etc/nginx/conf.d/default.conf …

apacheからnginxに乗り換える

思うところがあり、今動いているrailsアプリケーションをnginxに移している まだまだやることはあるけど今日やった作業の備忘録を残す 環境 CentOS6 rails 5.0.1 yumからインストール sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-r…

IMAPプロトコルでメール通知

思うところがあり、メールが来た時に本文を見て一部をslackに通知したくなった そこで、少し調べているとIMAP4というプロトコルがあるということを知りメール通知 + 本文取得を実装したのでメモ IMAP4プロトコルとは www.sophia-it.com IMAP4は、オンライン…

phantomJS + agouti(golang)でブラウザ操作自動化 事始め

思うところがあり今日はブラウザ操作の自動化を行っていた 丁度golangを勉強中ということもあり、phantomJS + agoutiの組み合わせでやってみた(別にgoでやる必要はありませんが..) 環境 centos6 go version go1.8.3 linux/amd64 phantomjs 2.1.1 インストー…

Google PageSpeed Insightsが0点だったので対策

前提として個人で制作後、その後の運営は他人がやっているサイトがあります そのサイトを先日知った、Google PageSpeed Insightsで採点すると100点中0点だった… そこで指摘されたうちいくつか対策をしたのでメモ 画像を最適化する jpg画像を投稿することが多…

gitでclone時に改行コードが変換されてしまった

今日windowsで作業中にUNIX系で作られたリポジトリをcloneした時にタイトルの状態になってしまって、無駄に時間を使ってしまった 解決策としてはcloneする前に↓をする git config --global core.autocrlf input するとclone時は改行コードを変換せず、コミッ…

visual studio 2017とwindows 10 sdkをインストールする

公式ページからインストーラーを拾ってきて、「C++によるデスクトップ開発」「C++によるゲーム開発」にチェックを入れてインストールを試みたが、windows 10 sdkのインストールでリターンコード1011エラーで失敗してしまう。 調べてみると、とりあえずスタン…

luaの論理否定演算子

luaの否定演算子をいつもピンポイントで忘れてしまうのでメモ.. luaでは `!` ではなく `not` 論理演算子は全部英語と覚えておこう..

rubyでslack通知

↓の記事でwhile readしないとうまく動かない理由がわかったので、slack通知の部分を変更した nanka.hateblo.jp 動かない理由はこちら nanka.hateblo.jp 改善版 require 'net/http' require 'uri' require 'json' uri = URI.parse("https://hooks.slack.com/s…

rubyの正規表現で文字列抽出

matchを使うと正規表現で文字列を抽出できる hoge = 'ip = 255.255.255.255' ip = hoge.match(/ip = (\d+\.\d+\.\d+\.\d+)/)[1] puts ip $ ruby -e "hoge = 'ip = 255.255.255.255'; ip = hoge.match(/ip = (\d+\.\d+\.\d+\.\d+)/)[1]; puts ip" 255.255.255…

コマンドをパイプでつなげると並列で動作する

昨日の記事に関連するメモ nanka.hateblo.jp 完全に勘違いしていました。 パイプを繋ぐと左からコマンドが順次実行されるとばかり思い込んでいましたが、並列でそれぞれ動作してるんですね.. 極端なはなしですが↓を実行すると即座に2が出力されて3秒後に1が…