2008年06月22日

Linux版ビューワ コンパイル手順(影がいいです〜)

● 今日は朝から雨なので

最近話題になってる、インワールドの影(Dynamic Shadows)を体験したくて
SLビューワのLinux版を、ソースからコンパイル・ビルドしてみました。

私が最近買ったPCですが、グラフィックボードがGF8800GTXなので、OKみたいです。
OSは、Linux Ubuntu8.04LTS です。




● マニュアルを読みます。

結構親切でわかりやすいのですが、案の定、コンパイル中にエラーが出まくります。
試行錯誤と野生の勘で、何とか動きましたので、ヨシとします。。^^;

http://wiki.secondlife.com/wiki/Compiling_the_viewer_(Linux)




● Required tools

Root権限で、必要なパッケージをインストールしました。

# apt-get install scons
# apt-get install bison
# apt-get install flex
# apt-get install libboost-program-options-dev





● Installing the required libraries

Root権限で、必要なライブラリをインストールしました。

# apt-get install mesa-common-dev
# apt-get install libglu1-mesa-dev
# apt-get install libstdc++6-dev
# apt-get install zlib1g-dev
# apt-get install libssl-dev





● ソースコード(Changeset 575)の入手

http://svn.secondlife.com/trac/linden/changeset/575

slviewer-artwork-shadow-draft-r87814.zip
slviewer-linux-libs-shadow-draft-r87814.tar.gz
slviewer-src-shadow-draft-r87814.tar.gz





このサイトから、必要なソース3つをwgetコマンドでダウンロードしました。

$ wget http://secondlife.com/developers/opensource/downloads/2008/05/slviewer-artwork-shadow-draft-r87814.zip
$ wget http://secondlife.com/developers/opensource/downloads/2008/05/slviewer-linux-libs-shadow-draft-r87814.tar.gz
$ wget http://secondlife.com/developers/opensource/downloads/2008/05/slviewer-src-shadow-draft-r87814.tar.gz





● www.fmod.org サウンド関連ライブラリ(fmodapi375linux.tar.gz)の入手

サードバーティ製のサウンド関連ライブラリが必要と書いてありますので、入手します。

$ wget http://www.fmod.org/index.php/release/version/fmodapi375linux.tar.gz




●  Unpack the source tree

ソースコードを解凍します

$ tar xvzf slviewer-src-shadow-draft-r87814.tar.gz
$ tar xvzf slviewer-linux-libs-shadow-draft-r87814.tar.gz
$ unzip slviewer-artwork-shadow-draft-r87814.zip


上書きしますか?の質問に、ALL を選んでみました。

replace linden/indra/newview/app_settings/windlight/clouds2.tga? [y]es, [n]o, [A]ll, [N]one, [r]ename: A

ローカルディレクトリに「linden」というディレクトリが作成され、ソース1式が解凍されます。




● サウンド関連ライブラリを解凍して、ヘッダ、ライブラリを、「linden」配下にコピーします。

$ tar xvzf fmodapi375linux.tar.gz
$ cd fmodapi375linux/
$ cp api/inc/* ../linden/libraries/i686-linux/include/
$ cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/





● Compiling

最後にパッケージ一式を圧縮してくれる、releasefordownloadモードでコンパイルして見ました。

$ scons DISTCC=no BTARGET=client BUILD=releasefordownload MOZLIB=yes




● エラー出まくり ーー;

(1) g++-4.1 がありません、と出たので

# apt-get install g++-4.1




(2) libboost 関連がありません、がたくさん出るので、「SConstruct」ファイルの中を調べて
libboost 関連のパッケージを片っ端から、インストールしてみました。^^;

# apt-get install libboost-dev
# apt-get install libboost-regex-dev
# apt-get install libboost-signals-dev





(3) boost_signals-gcc34-mt が無い、というエラーが出ます。

マニュアルにも解決方法が書いてありました。

http://wiki.secondlife.com/wiki/Compiling_the_viewer_(Linux)
Required tools

「SConstruct」ファイルには、以下のようにlibboost関連の指定がたくさんあります。

(linden/indra/SConstruct)

client_external_libs += [ 'boost_program_options-gcc34-mt', 'boost_signals-gcc34-mt', 'boost_regex-gcc34-mt']
external_libs += ['boost_signals-gcc34-mt']
boost_signals_lib = 'boost_signals-gcc33-mt-d'
boost_libs = [ 'boost_regex-gcc33-mt-d', boost_signals_lib ]

など

でも、ubuntu8.04のファイル一覧を調べると、ファイル名に「gcc33」「gcc34」などバージョンがついていないので
「SConstruct」ファイルを修正してしまいます。(オリジナルのSConstructファイルはコピーしておく事)

(linden/indra/SConstruct)

client_external_libs += [ 'boost_program_options-mt', 'boost_signals-mt', 'boost_regex-mt']
external_libs += ['boost_signals-mt']
boost_signals_lib = 'boost_signals-mt-d'
boost_libs = [ 'boost_regex-mt-d', boost_signals_lib ]





● やっとこさ、コンパイル・ビルド終了~

(正常終了時のメッセージ)

Running command: mv newview/packaged newview/SecondLife_i686_1_20_6_0
Running command: tar -C newview --numeric-owner -cjf newview/SecondLife_i686_1_20_6_0.tar.bz2 SecondLife_i686_1_20_6_0
Running command: mv newview/SecondLife_i686_1_20_6_0 newview/packaged
scons: done building targets.





圧縮されたパッケージが作成されます。

linden/indra/newview/SecondLife_i686_1_20_6_0.tar.bz2




● パッケージを解凍して、実行

$ tar xvjf linden/indra/newview/SecondLife_i686_1_20_6_0.tar.bz2
$ cd SecondLife_i686_1_20_6_0
$ ./secondlife





● ビューワで、「Debug Settings」の設定

ビューワの「Advanced」->「Debug Settings」ウィンドウを開いて

1.RenderDeferred を FALSE(誤) に設定
2.RenderUseFBO を TRUE(正) に設定
3.RenderDeferred を TRUE(正) にもどす




● 京都河原町サンドボックスの夕暮れ

なんか、夕ご飯の匂いが漂ってきそうな感じです~。^^
こんな苦労しなくても、はやく影が表示できるようになるといいですね。





同じカテゴリー(SLViewer)の記事
 Macで影付きビューアをコンパイル/ビルドしてみるテスト (2009-05-16 20:45)
 Linux版影付きSLビューアコンパイル手順(1.21対応) (2008-09-13 00:14)

Posted by ぱすてる at 19:25│Comments(5)SLViewer
この記事へのコメント
Linux関連はいつも情報が(相対的に)少ないので、こういった記事はとても参考になります!(^_^)
Posted by march at 2008年06月23日 12:09
(^^) marchさん、おはつです。

marchさんもLinux使いですか?
この手の記事は、すぐに内容が古くなってしまいます。
オープンソースは、情報公開、情報共有が基本ですから、
marchさんも新しい情報をどんどん発信してください。
ソースからあれこれ試行錯誤して完成させる、ものづくりも楽しいですね~。
IT技術のスキルアップにもなりますし。
Posted by ぱすてるぱすてる at 2008年06月23日 19:54
おおお〜〜〜

Dynamic Shadows ですか??

影が!!!! リアリティーありますね。

近い将来--PCの違いで見え方が変わってきますね。
Posted by 漱石漱石 at 2008年06月26日 18:20
(^^) 漱石さん、どもども。

影付きであちこち散策しましたが、建築デザイナさんにとって影は間違いなく
デザインの要素のひとつになりそうです。
ますますデザイン力が必要になりそうですね~。
漱石さんの腕の見せ所です。

これからは、土地の向きやファサードの方角、近隣の日影や
逆日影図を考える必要もありそうですね。。。

あれ? そういえば、インワールドに建築基準法ってありましたっけ?(爆)
Posted by ぱすてるぱすてる at 2008年06月26日 21:00
こんばんわ 

建築基準法・・・ですね(^^;

北側斜線制限なんかも考慮しなくていけなくなりますかね。。(^^; ナイナイ


影がデザインの要素の1つになりそう・・・・

おっしゃる通り、なるでしょうね。。
RLでは照明効果の考慮はあってもーーー陰影の効果まではなかなか考慮していませんでしたね。。

楽しみですね
Posted by 漱石漱石 at 2008年06月26日 21:29
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。