あかすくぱるふぇ

同人サークル「あかすくぱるふぇ」のブログです。

洲崎西第131回放送の"八百長レズ営業"が衝撃的過ぎたので、個人的メモのために書き起こしました。



あっ、悪名高いあやっぺ乃山からLINEだ。
なになに……。

「おつかれさまです。次の一番なのですが、立合いは強く当たって見つめ合い、
まずは手を握ってから、頭の匂いを嗅ぎ、次第に身体をまさぐり合って、
あとは流れでベッドインする方向でお願いします」

こっ、こっ……これは! 噂に聞く八百長レズ営業の申し出っ!
たかが一時の人気を得るために性的嗜好を売り物とするなんてなんと浅ましいっ!
……でもっ、でもっ、相手があやっぺ乃山なら、わたし、八百長じゃなくて本気で……。

ライン♪

「ごめんなさい、間違えました。
さっきのはあやね龍関に送るやつでした。忘れてください」

おいっ、ふざけんなっ!
わたしのレズ心を弄びやがって、あの野郎っ! 目に物見せてやるっ!

数日後、明日香乃海とあやっぺ乃山の一番は、組んず解れつ、ねぶるような戦いとなった。
鬼のように執拗なペッティングの末、白星は明日香乃海に。
決まり手はジョジョ立ちからの上手婚姻届け出し投げであった。
先進的な渋谷区に感謝である。
また、翌年の新レズ検査には例年の十倍が押し寄せたという……。

CUDA samplesのbilateralFilterの中身を解析してみました。

・メモリ領域の確保とデバイスへのコピー(.cuの118行目)
二次元配列を連続領域として確保したいのでcudaMallocPitch()とcudaMemcpy2D()を用いている。
http://www.slis.tsukuba.ac.jp/~fujisawa.makoto.fu/cgi-bin/wiki/index.php?%A5%EA%A5%CB%A5%A2%A5%E1%A5%E2%A5%EA%A4%C8CUDA%C7%DB%CE%F3

・テクスチャメモリ
テクスチャメモリの生成(.cuの17行目)
テクスチャメモリと画像の関連付け(cudaBindTexture2D(), .cuの186行目)
テクスチャメモリの参照(tex2D(), .cuの99行目)
http://gpu.fixstars.com/index.php/%E3%83%86%E3%82%AF%E3%82%B9%E3%83%81%E3%83%A3%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%E3%82%92%E4%BD%BF%E3%81%86

・PBOをCUDAからいじる
PBOをCUDAへ登録(cudaGraphicsGLRegisterBuffer(), .cppの401行目)
PBOのポインタを取得(cudaGraphicsResourceGetMappedPointer(), .cppの167行目)
PBOの値をいじる(.cuの114行目)
http://shouyu.hatenablog.com/entry/2011/12/05/192410

・PBOの描画(.cppの178行目)
PBOをテクスチャに設定して、テクスチャマッピング。

glVertex()の代わりとしてglVertexAttrib()、glVertexPointer()の代わりとしてglVertexAttribPointer()が存在します。
これらの関数の存在意義は何か。
それはGLSL(OpenGL)のバージョンと大きく関係しています。

新しいバージョン(GLSL1.5くらいから?)では、gl_Vertexなどの自動で設定されるAttribute変数が廃止となっており、アプリケーションプログラムからglVertex()を呼んだだけではシェーダーによる描画ができなくなっています。
そこで必要となるのがAttribute変数の明示的な設定であり、それを行うのが前述の~Attrib()です。
Attribute変数の明示的設定の手順は以下の通りです。

1. glGetAttribLocation()で、Attribute変数のインデックス(アドレスみたいなもの?)を取得。
  →GLuint appPos = glGetAttribLocation(program, "vertexPos");
2. gEnableVertexAttribArray(appPos)で、Attribute変数を有効にする。
3. glVertexAttrib()で、頂点情報を設定する。
4. glDrawArrays()で描画。

なお、GLSLのバージョン指定は、シェーダープログラムの最初に、#version 120などと書くことによって行います。
この指定をしないとPCに入っているOpenGLのバージョンなどによって挙動が変わってしまいますので、ちゃんと指定した方がよいと思われます。

参考サイト
http://mklearning.blogspot.jp/2014/08/opengl.html
http://wlog.flatlib.jp/item/1633
http://www.arakin.dyndns.org/glsl_qualifier.php

↑このページのトップヘ