Closed mmurooka closed 9 years ago
make cube しても暗いかな? simplerobotは暗いかな. HRP2オンリーの話ならコンバートですね. その場合,HRP2だけでしょうか?PR2など(ちょっと経路が違うロボット)も暗いでしょうか? GLでdiffuse/ambientとか色々セットしている部分があると思うけど,そこの値を替えたらいいともいます. その部分だけコピペして貼りつけていてください.
2014-09-14 21:25 GMT+09:00 Masaki Murooka notifications@github.com:
(他のロボットでは未確認ですが)HRP2のeusモデルがrbrainのものに比べて暗い感じがします. irtviewerをキャプチャしたロボットの図が見づらくて直したいので,何かヒントを頂けたら作業してみようと思います.
— Reply to this email directly or view it on GitHub https://github.com/jsk-ros-pkg/jsk_model_tools/issues/59.
make-cubeはirteus,rbrainで同じようでした. PR2は少しだけrbrainの方が暗い気がしなくもないですが,HRP2ほどではないです. 変換の問題のような気がします.
SampleRobotはrbrainでは変換されていないようですが,irteusでは暗いように見えます
PR2では色が適切なようにみえるので、 vrml=>collada=>euslisp の経路をたどっているロボットの色が暗いようですね。
返事遅くなりましたが、eusのデフォルトのlightが暗いのが根本原因かと思います。 https://github.com/euslisp/EusLisp/blob/master/lisp/opengl/src/glview.l#L191-L205
メッシュの変換自体は、diffuse/ambientはもとのメッシュの値をそのまま変換し表示しようとしています。 明るく見えるメッシュは、もともと diffuse == ambient になっていたりするものです。
内部的な話だと、pickviewは以下のようにlightの設定を上書きしています。
(:gllight
(&key (light_ambient (float-vector 0.1 0.1 0.1 1.0))
(light_diffuse (float-vector 1.0 1.0 1.0 1.0))
(light_specular (float-vector 0.1 0.1 0.1 1.0))
(light0_position (float-vector 4000.0 3000.0 2000.0 0.0))
(light1_position (float-vector -4000.0 -2000.0 0.0 0.0))
(light2_position (float-vector -2000.0 -2000.0 8000.0 0.0))
(light1_scale 0.7) (light2_scale 0.4))
(let ()
(glLightfv GL_LIGHT0 GL_AMBIENT light_ambient)
(glLightfv GL_LIGHT0 GL_DIFFUSE light_diffuse)
(glLightfv GL_LIGHT0 GL_SPECULAR light_specular)
(glLightfv GL_LIGHT0 GL_POSITION light0_position)
(glLightfv GL_LIGHT1 GL_AMBIENT (scale light1_scale light_ambient))
(glLightfv GL_LIGHT1 GL_DIFFUSE (scale light1_scale light_diffuse))
(glLightfv GL_LIGHT1 GL_SPECULAR (scale light1_scale light_specular))
(glLightfv GL_LIGHT1 GL_POSITION light1_position)
(glLightfv GL_LIGHT2 GL_AMBIENT (scale light2_scale light_ambient))
(glLightfv GL_LIGHT2 GL_DIFFUSE (scale light2_scale light_diffuse))
(glLightfv GL_LIGHT2 GL_SPECULAR (scale light2_scale light_specular))
(glLightfv GL_LIGHT2 GL_POSITION light2_position))
)
https://github.com/euslisp/EusLisp/blob/master/lisp/opengl/src/glview.l#L41 たりのデフォルト値を変えるといいのかな?
2014-09-17 14:50 GMT+09:00 Yohei Kakiuchi notifications@github.com:
返事遅くなりましたが、eusのデフォルトのlightが暗いのが根本原因かと思います。
https://github.com/euslisp/EusLisp/blob/master/lisp/opengl/src/glview.l#L191-L205
メッシュの変換自体は、diffuse/ambientはもとのメッシュの値をそのまま変換し表示しようとしています。 明るく見えるメッシュは、もともと
内部的な話だと、pickviewは以下のようにlightの設定を上書きしています。
(:gllight (&key (light_ambient (float-vector 0.1 0.1 0.1 1.0)) (light_diffuse (float-vector 1.0 1.0 1.0 1.0)) (light_specular (float-vector 0.1 0.1 0.1 1.0)) (light0_position (float-vector 4000.0 3000.0 2000.0 0.0)) (light1_position (float-vector -4000.0 -2000.0 0.0 0.0)) (light2_position (float-vector -2000.0 -2000.0 8000.0 0.0)) (light1_scale 0.7) (light2_scale 0.4)) (let () (glLightfv GL_LIGHT0 GL_AMBIENT light_ambient) (glLightfv GL_LIGHT0 GL_DIFFUSE light_diffuse) (glLightfv GL_LIGHT0 GL_SPECULAR light_specular) (glLightfv GL_LIGHT0 GL_POSITION light0_position)
(glLightfv GL_LIGHT1 GL_AMBIENT (scale light1_scale light_ambient)) (glLightfv GL_LIGHT1 GL_DIFFUSE (scale light1_scale light_diffuse)) (glLightfv GL_LIGHT1 GL_SPECULAR (scale light1_scale light_specular)) (glLightfv GL_LIGHT1 GL_POSITION light1_position) (glLightfv GL_LIGHT2 GL_AMBIENT (scale light2_scale light_ambient)) (glLightfv GL_LIGHT2 GL_DIFFUSE (scale light2_scale light_diffuse)) (glLightfv GL_LIGHT2 GL_SPECULAR (scale light2_scale light_specular)) (glLightfv GL_LIGHT2 GL_POSITION light2_position)) )
— Reply to this email directly or view it on GitHub https://github.com/jsk-ros-pkg/jsk_model_tools/issues/59#issuecomment-55851671 .
メモ.
(dolist (l (list gl:*light0* gl:*light1* gl:*light2*))
(warn "~a ~a~%~a ~a~%~a ~a~%~a ~a~%"
:ambient (send l :ambient)
:diffuse (send l :diffuse)
:specular (send l :specular)
:position (send l :position)))
;; irteus
:ambient #f(0.2 0.2 0.2 1.0)
:diffuse #f(0.6 0.6 0.6 1.0)
:specular #f(0.4 0.4 0.4 1.0)
:position #f(1.0 2.0 1.5 0.0)
:ambient #f(0.1 0.1 0.1 1.0)
:diffuse #f(0.2 0.2 0.2 1.0)
:specular #f(0.4 0.4 0.4 1.0)
:position #f(-1.0 -2.0 0.0 0.0)
:ambient #f(0.1 0.1 0.1 1.0)
:diffuse #f(0.2 0.2 0.2 1.0)
:specular #f(0.4 0.4 0.4 1.0)
:position #f(-1.0 -2.0 -1.0 0.0)
;; rbrain
:ambient #f(0.2 0.2 0.2 0.0)
:diffuse #f(0.5 0.5 0.5 0.0)
:specular #f(0.3 0.3 0.3 0.0)
:position #f(0.0 0.0 1.0 0.0)
:ambient #f(0.3 0.3 0.3 1.0)
:diffuse #f(0.6 0.1 0.1 0.8)
:specular #f(0.3 0.3 0.3 1.0)
:position #f(5000.0 1000.0 7000.0 1.0)
:ambient #f(0.3 0.3 0.3 1.0)
:diffuse #f(0.1 0.1 0.7 0.0)
:specular #f(0.3 0.3 0.3 1.0)
:position #f(-15000.0 0.0 2000.0 1.0)
irteusのlightの設定は以下でやっているようです. https://github.com/euslisp/jskeus/blob/master/irteus/irtviewer.l#L96-L113 // Issue切るリポジトリ大外れでした.
rbrainと同じ値に書き換えたらさらにダークになってしまった.どうしてでしょう..
diffuse がおかしいですよね.何でこうなっているのかね.三方向からRGBを照射して白く見せる,みたいな事をしたかったのかな? @fkanehiro さん.なにかご存知だったりしますか?
lightのパラメータを以下のように手動で調整してHRP2が明るく表示されるようにしたのですが, 今度はPR2が明るすぎるように思います. (このスレッドの上の方に現状でのキャプチャがあります.)
やはり,ビューア側ではなくロボットモデル側の問題かもしれない気がしてきています.
(setq gl::*light0*
(instance gl::lightsource :create 0
:ambient (float-vector 0.4 0.4 0.4 0.0)
:diffuse (float-vector 1.0 1.0 1.0 1.0)
:specular (float-vector 0.3 0.3 0.3 0.0)
:position (float-vector 0.0 0.0 1.0 0.0)))
(setq gl::*light1*
(instance gl::lightsource :create 1
:ambient (float-vector 0.5 0.5 0.5 1.0)
:diffuse (float-vector 1.0 1.0 1.0 1.0)
:specular (float-vector 0.5 0.5 0.5 1.0)
:position (float-vector 500.0 1000.0 700.0 1.0)))
(setq gl::*light2*
(instance gl::lightsource :create 2
:ambient (float-vector 0.5 0.5 0.5 1.0)
:diffuse (float-vector 1.0 1.0 1.0 1.0)
:specular (float-vector 0.5 0.5 0.5 1.0)
:position (float-vector -500.0 0.0 200.0 1.0)))
euslibのモデルをirteusに変換して、それらが同じように表示されるなら、vrmlとかの変換でどこかミスっている気がします
2014年9月24日水曜日、Masaki Murookanotifications@github.comさんは書きました:
lightのパラメータを以下のように手動で調整してHRP2が明るく表示されるようにしたのですが, 今度はPR2が明るすぎるように思います. (このスレッドの上の方に現状でのキャプチャがあります.)
やはり,ビューア側ではなくロボットモデル側の問題かもしれない気がしてきています.
(setq gl::*light0* (instance gl::lightsource :create 0 :ambient (float-vector 0.4 0.4 0.4 0.0) :diffuse (float-vector 1.0 1.0 1.0 1.0) :specular (float-vector 0.3 0.3 0.3 0.0) :position (float-vector 0.0 0.0 1.0 0.0))) (setq gl::*light1* (instance gl::lightsource :create 1 :ambient (float-vector 0.5 0.5 0.5 1.0) :diffuse (float-vector 1.0 1.0 1.0 1.0) :specular (float-vector 0.5 0.5 0.5 1.0) :position (float-vector 500.0 1000.0 700.0 1.0))) (setq gl::*light2* (instance gl::lightsource :create 2 :ambient (float-vector 0.5 0.5 0.5 1.0) :diffuse (float-vector 1.0 1.0 1.0 1.0) :specular (float-vector 0.5 0.5 0.5 1.0) :position (float-vector -500.0 0.0 200.0 1.0)))
[image: screenshot_from_2014-09-24 13 31 36] https://cloud.githubusercontent.com/assets/6636600/4383486/b98cc072-43a3-11e4-88da-100a5fcaed4e.png
— Reply to this email directly or view it on GitHub https://github.com/jsk-ros-pkg/jsk_model_tools/issues/59#issuecomment-56623827 .
from iPhone
(他のロボットでは未確認ですが)HRP2のeusモデルがrbrainのものに比べて暗い感じがします. irtviewerをキャプチャしたロボットの図が見づらくて直したいので,何かヒントを頂けたら作業してみようと思います.