質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

1回答

1215閲覧

ProcessingでspotLightの値の取り方

manapico

総合スコア4

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2020/01/20 04:54

前提・実現したいこと

Processingで対象のオブジェクトに4方向からスポットライトが当たるようにしたいです。

発生している問題・エラーメッセージ

マウスの座標にオブジェクトがついてくるようにして、スポットライトを置きたい位置に球体を設置し、スポットライトの光を球体からマウス座標に向かって出るようなプログラムを書いたが、光が出ない(見当たらない)です。

該当のソースコード

processing

import saito.objloader.*;

OBJModel model;

void setup() {
size(1200, 800, P3D);

model = new OBJModel(this, "12228_Dog_v1_L2.obj", "absolute", TRIANGLES);
model.scale(5);
noStroke();

}

void draw() {
background(100);

camera(width/2,height/2,1000,width/2,height/2,0,0,1,0);

//犬の描画
pushMatrix();
translate(mouseX, mouseY, -100);
rotateX(radians(80));
rotateZ(radians(50));
model.draw();
popMatrix();

//スポットライト
pushMatrix();
translate(width/2-500, height/2-550, -300);
sphere(10);
spotLight(255,0,0,0,0,0,mouseX,mouseY,-1,PI/16,200);
popMatrix();

pushMatrix();
translate(width/2+500, height/2-550, -300);
sphere(10);
spotLight(255,0,0,0,0,0,mouseX,mouseY,-1,PI/16,200);
popMatrix();

pushMatrix();
translate(width/2-500, height/2-350, 300);
sphere(10);
spotLight(255,0,0,0,0,0,mouseX,mouseY,-1,PI/16,200);
popMatrix();

pushMatrix();
translate(width/2+500, height/2-350, 300);
sphere(10);
spotLight(255,0,0,0,0,0,mouseX,mouseY,-1,PI/16,200);
popMatrix();

}

試したこと

spotLightの使用法を調べたが、光の方向を示すベクトルである値の置き方があまりわからず、この場合どのような値が良いのかがわからないです。
ライトがこの状態で機能しているのかどうかもわからないです。

補足情報(FW/ツールのバージョンなど)

Processing 3.5.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

lineかなんかでどっちを向いているかを確認されたらどうでしょうか?
少なくとも現状4本とも同じ方向を向いているように思います。

Processing

1 //スポットライト 2 pushMatrix(); 3 translate(width / 2 - 500, height / 2 - 550, -300); 4 sphere(10); 5 spotLight(255, 0, 0, 0, 0, 0, mouseX, mouseY, -1, PI / 16, 200); 6 stroke(1); 7 line(0, 0, 0, mouseX, mouseY, -1); 8 noStroke(); 9 popMatrix();

投稿2020/01/21 09:24

TN8001

総合スコア9317

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問