三次元オブジェクトをマウス回転(glut使用)入門者がOpenGLを使う時、コードと出力結果だけでは何がどうなったのかわかりにくい事があります。回転ぐらいはしたいので、マウスの左ドラッグで描画対象を回転できるシンプルなコードを作成しました。(例のごとく同種のものはいくらでもあると思います)使い方:マウス押下時に、dragstartを呼び出して回転開始を宣言します。その後、マウスが動くたびにdragtoを呼び出して、回転状態を更新します。最後、マウスボタンが離された時にdragendを呼び出して、回転の終了を宣言します。@TDUを参考にしました。//クライアント領域のどこの範囲に描画しているかを指定。0;}呼出元のコードは見ての通りglutを使用していますが、freeglutを使っています。回転行列はglMultMatrixdで掛け合わせていますのでglRotate*等は使っていません。クライアント領域内にOpenGLで描画する範囲を矩形で指定。}}前半はクラスの定義です。後半はベクトルや行列に関する演算用の汎用的な関数です。}}クラスの実装です。各データへアクセス調査中のメモです。Object(“Torus”)>「アクティブなオブジェクト」というのはオレンジ色で強調されているもののことで、複数選択されているときも、アクティブなオブジェクトは一つだけです。-1.0000)>glutのマウス操作GLUTでのマウス操作一覧です。blenderのノードにキーフレームを追加する作業は、値をポイントして[i]キーを押せば良いです(つまり普通のキーフレーム追加作業)。DopeSheetやGraphEditorで表示されないため、変化速度のカーブを編集したりできません。仕方が無いので、pythonで1フレームずつ設定します。1.設定したい項目をポイントし、pythonからのアクセス方法を確認します。bpy.context.scene.frame_set(i)現在のフレームをiに設定します※keyframe_insertその項目にキーフレームを挿入しますframe=iは挿入するフレーム番号ですが、省略すると現在のフレームに挿入されます。従って先にframe_setをしてあるこの例では以下のように書いても動作します。希にほしくなるCubeを描画する関数です。同種の物は探せばいくらでも出てくると思います。OpenGLはデフォルトで反時計回りを面の表としているので、glFrontFace(GL_CCW)でカリングをし、面の向きが全てCubeの外側を向いていることを確認しています。実際に使用するときは外すと良いと思います。glDisable(GL_CULL_FACE);//カリングを無効にする}googleの検索結果からキュレーションサイトを排除するNAVERまとめを除外したいんです。Naverまとめは便利だ。芸能人のゴシップとか本来知る必要すらないような情報を検索して、信憑性のない断片的な情報から想像を膨らませて楽しむには最適と言える。情報量において他メディアに比べ圧倒的に劣っているからだ。問題は、にもかかわらず、google検索で上位に表示される点にある。Blocklistプラグインを使います。Firefox用、Chrome用があります。Google)Firefox用で説明します。インストールするとブラウザ右上に赤いボタンが出ます。この状態で普通に検索すると、検索結果の左下に「xxxxx.comをブロック」という項目が出てきます。これをクリックすると以降、検索結果にこのドメインのサイトが表示されなくなります。ページ単位でなくサイト単位で表示されなくなるので、1クリックでまとめサイトを丸ごと一つ排除出来ます。ブロックを解除したいときは、先の右上の赤いボタンをクリックし、「ブロックの解除」をクリックします。uBlacklistただし、2018/11/28現在、Chrome用のほうが全く機能しないようです。「ブロックするための項目がサイト名付近から消える」というトラブルは過去にも数回起こっているようですが、少なくとも私の環境では一切の動作をしませんでした。代替として、Chrome用にはuBlacklistがあります。uBlacklistuBlacklistの場合、一度そのサイトに入る必要があります。まとめサイトに入った上で、ブラウザ右上にある禁止マークをクリックし、「このサイトをブロックする」と表示された状態でOKボタンを押します。以下、雑談まとめサイトの事を正確には「キュレーションサイト」といいます。キュレーションサイト自体は本来悪い物ではないのですが、最新のSEOを徹底的に施した粗悪なコピペ記事の量産により、検索結果がゴミサイトばかりになるという事で、キュレーション汚染とまで言われています。なるかというと「クラウドソーシング」と呼ばれる、オンラインで個人に仕事を依頼する方法で、1記事100円等という低予算でど素人によるGoogle検索結果のコピペ作業で完成したページだからです。広告収入を目的に記事を書くのは良いと思います。品質を保つには予算かモチベーションの少なくともどちらか一方は必ず必要です。問題は品質が保てていないことです。Googleは検索アルゴリズムの変更で対処するようですが、もういっそ営業妨害で訴えたらどうか。ちなみに私がなぜ今頃キレたかというと、諸事情により中二病の壁紙を検索したら頭のほうをnaverが独占したからです。壁紙は壁紙サイト自体がまとめサイトみたいな物です。まとめをまとめるとかもう訳がわかりません。Cycles前回までで基本は完了となる。あとはイメージ通りの風景にするための微調整として、様々な位置に雲を追加していく。既存の雲を[Shift+D]でコピーした場合はマテリアルも複製されているので、Displaceのテクスチャを状況に応じてiCloudをつかうかBIGを使うかを選択すると良い。Linkすることで、此までと同じ設定をする手間を省くことができる。雲のマテリアルを数種類追加する。マテリアルを追加するとき、全く違うマテリアルなら新規作成するが、今回のように現在のマテリアルを修正する場合、既存のマテリアルが有効な状態で、マテリアル名横の数字をクリックすることで、既存のマテリアルをコピーできる。この数字は、現在選択中のオブジェクトが使用しているマテリアルは、何個のオブジェクトと共有されているかという意味である。この数字をクリックするとマテリアルがコピーされ、新たなマテリアルは現在のオブジェクトだけが使用する状態になる。Mediumに変更したい場合、マテリアルのリストから既存のマテリアルを選択する。暗い灰色)このようにしてマテリアルと形状を組み合わせた雲を配置する。これは自分の好みの問題なので、より動画に忠実に配置したい人は動画の[50:30~]を見てほしい。英語だが、動きだけ見ていれば何をしているのかはわかる。背景を透過したPNG版だと特にわかりにくいが、volumeのアーティファクトが沢山できている。動画ではBlenderで対処せず、Photoshopなどのフォトレタッチソフトで修正をかけている。]眼下の一面の雲のモデリングが終わったので、両脇の雲を別に作成する。その前に、前回まで作成した各モデルのモディファイアを不可視にし、モデリング中の表示速度を改善する。同じ方法で、新しい雲を作る。できたら、それをカメラの目の前に配置する。]そして、追加した雲のマテリアルを設定する。Ooutput)Density=7さらに以下の形状の雲を作り、カメラから少し遠いところに配置する。このとき、カメラから離れたところに配置すると小さく見えるので、モデルを[S]で拡大する。拡大するとスケーリングが変化し、ノイズが尖ってしまう。Coordinate]→[Object]にBIGを指定する。BIGを拡大、縮小し、適切なノイズに調整する。行ったのと同じ内容である。]マテリアルの設定に入る。動画とは若干前後するが、先にレンダリングの設定を行っておく。動画では、最低30、と言っている)[Performance]→[Tiles]→X=16,Y=16[Performance]→[Thread]→Fixed[Performance]→[Thread]→Threads=7前々回作った”iCloud”の雲のオブジェクトを一つ選択し、マテリアルを追加後、以下のようにノードを設定する。Links]→Materialを実行する。このとき、先にマテリアルを追加しておいたオブジェクトを最後に選択することに注意する。ここまでのレンダリング結果この結果の中で、雲の形状の周辺に黒い部分(アーティファクト)が生じている。これは透過PNGを複数重ねたときにも生じる、Cyclesの透過の回数制限が原因である。Path]→[Transparency]→Max=30を設定する。Cycles面状の雲に、小さな雲を配置していく。Particleを追加する。このとき、Hairが雲の裏側に出る。これはSolidifyモディファイアの後にParticleを発生させているためである。回避するために、モディファイアの適用順序を、Particle→Solidifyに変更する。]動画と前後するが、最後に回転を設定する。BlenderのParticleでオブジェクトを指定すると(なぜか)90度反転するので、オブジェクトをY軸に-90度回転する。※このRandomは、動画では1.0が最大になっているが、筆者の環境Blender2.79では最大2.0になっていた。