Posted by at

2009年05月16日

Macで影付きビューアをコンパイル/ビルドしてみるテスト

● ずいぶん安定してきましたね〜 ^^

(2008年09月13日)Linux版影付きSLビューアコンパイル手順(1.21対応)
http://pastel.slmame.com/e364321.html

去年のLinux版に引き続き、MacOSX版で影付きビューアのコンパイルビルドを試してみました。
以前はまったく動かず記事にすらできませんでしたが、最近はなんとか影付きで動作するように
なってきたみたいです。




● とはいえ、他のOS版と比べたらまだまだ安定してませんが。。。。

私のMacでは、激しく視点を動かしたり、にぎやかな場所だと、時々ビューアがフリーズしちゃいます。
また、残念ながらビューアのSSでは影が映りませんでしたので、OSXのスクリーンショットです。。。






● コンパイル手順の解説ページ

英語ですけど、書いてある通りコマンドを実行するだけなので誰にでも出来ます。^^;
ちなみに日本語ページもありますが、けっこう古くて失敗します。
解説だけ一通り読めばいいでしょう。

Compiling the viewer (Mac OS X)
http://wiki.secondlife.com/wiki/Compiling_the_viewer_(Mac_OS_X)

完成品ビューアをダウンロードして動かすだけに物足りないと感じる方は、ぜひ一度。




● 必要なソフト(その1) CMakeの入手

OSX標準のmakeコマンドではなく、cmakeが必要です。
以下のサイトからダウンロードして、インストールします。
http://www.cmake.org/cmake/resources/software.html
cmake-2.6.4-Darwin-universal.dmg


インストール途中でコマンドのリンク先を尋ねてきます。
変更せずに「Install Command Line Links」を選択します。



● 必要なソフト(その2) MOD 3 Programmers API

Firelight Tech社のサウンド用開発API(バージョン3)を入手します。
http://www.fmod.org/index.php/download
fmodapi375mac.zip



● 必要なソフト(その3) Xcode 統合開発環境

Mac OSX Leopardに付属している、統合開発環境です。
iPhoneアプリまで作れて無料です。^^





● ビューアソースコードのダウンロードと準備

URLは、こちら。
Source downloads
http://wiki.secondlife.com/wiki/Source_downloads


RC1.23の最新版を入手しました。
ver RC-1.23.1
slviewer-artwork-viewer-1.23.1-r119104.zip
slviewer-darwin-libs-viewer-1.23.1-r119104.tar.gz
slviewer-src-viewer-1.23.1-r119104.tar.gz


作業用フォルダを作ってまとめておきます。



ここからは、ターミナル(コンソール)を開いて、コマンド入力になります。
ファイルを解凍すると、「linden」「fmodapi375mac」というディレクトリができます。
$  tar  xvzf  slviewer-darwin-libs-viewer-1.23.1-r119104.tar.gz
$  tar  xvzf  slviewer-src-viewer-1.23.1-r119104.tar.gz
$  unzip  slviewer-artwork-viewer-1.23.1-r119104.zip
$  unzip  fmodapi375mac.zip






● fmodapi375 のコピー

fmodapiのライブラリやインクルードファイルを、lindenディレクトリにコピーします。
ここは、解説サイトのとおり、ターミナルにコピペして実行すればOK。
(この部分はスクリプトにしておくと、今後便利です。)
$  mkdir  -p  linden/libraries/include/
$  mkdir  -p  linden/libraries/universal-darwin/lib_debug/
$  mkdir  -p  linden/libraries/universal-darwin/lib_release/

$  cd  fmodapi375mac/

$  cp  -p  api/inc/*.h  ../linden/libraries/include/
$  lipo  -create  api/lib/libfmod.a  api/lib/libfmodx86.a  -output  ../linden/libraries/universal-darwin/lib_debug/libfmod.a
$  touch  -r  api/lib/libfmodx86.a  ../linden/libraries/universal-darwin/lib_debug/libfmod.a

$  cd  ..
$  cp  -p  linden/libraries/universal-darwin/lib_debug/libfmod.a  linden/libraries/universal-darwin/lib_release/libfmod.a






● プレコンパイル準備(プロジェクトファイルの作成)

linden/indra/ 配下のdevelop.pyを実行して、Xcodeのプロジェクトファイルを作成します。


デバック情報は不要なので、リリースタイプを指定して実行しました。
$  cd  linden/indra/
$  ./develop.py  --help
$  ./develop.py  -t  Release  configure





● Xcodeでコンパイルビルド

indra/build-darwin-i386配下に、Xcodeのプロジェクトファイルができます。
ダブルクリックすると、Xcodeが起動します。



デバッグ情報は不要なので、リリースタイプでビルドします。
500近いファイル数を処理しますので、お茶でも一杯どーぞ。



build-darwin-i386/newview/Release/ 配下に、ビューア実行ファイルができあがります。


あとは、デバッグコンソールで、RenderUseFBOとRenderDeferredを有効にすればいいです。





● いろいろなソースコードをコンパイルしてみる。

リンデンのサイトからはいろいろなソースコード(ブランチ:開発コード?)が入手できる
ので、新しもの好きの方は試してみるのもいいかも。

たとえば、ブランチ:レンダーパイプライン。
これは以前、シャドウドラフト(Shadow Draft)と呼ばれていたソースです。


Snapshot of internal branch render-pipeline



これをビルドすると、ハードウェア設定に、シャドウの設定メニューがあります。



でも、わたしのMacでは、シャドウは表示されませんでした。。。残念 ><;
リンデンさん、がんばってくださいね〜。
  


Posted by ぱすてる at 20:45Comments(2)SLViewer

2008年09月13日

Linux版影付きSLビューアコンパイル手順(1.21対応)

● やっと、make(Cross platform cmake)に対応した。 ^^/

いぜん、以下の記事で、影付きビューアのコンパイル手順を紹介したのですが、
この頃は、sconsというなじみのない開発ツールが使われていて
どうも使い勝手がよくありませんでした。

Linux版ビューワ コンパイル手順(影がいいです~)
http://pastel.slmame.com/e281554.html


でも、1.21系から、ようやく馴染みのmake(cmake)を使うビルド方法に変わりましたので、
おかげで、コンパイル時のエラーなども効率よく解決できるようになりました。

新しいコンパイル方法解説ページ
http://wiki.secondlife.com/wiki/Get_source_and_compile




● プラットフォーム

OSは、いつものように、Ubuntu8.0.4 (Debian/GNU Linux系OS)です。
RedHat系(Fedora、CentOS等)の手順は、そのうち誰かさんが書いてくれるでしょう。。 ^^b



● CMAKEの入手とインストール

Ubuntuにもcmakeパッケージ(2.6.X)が用意されていますが、バージョンが新らしすぎてコンパイルできませんでした。
忠告にも書かれています。

http://wiki.secondlife.com/wiki/CMake

Performing a build with CMake
Note: we do not yet support CMake 2.6.0. Please use CMake 2.4.8 instead.

なので、Ubuntuパッケージではなく、cmakeのサイトからV2.4.8のソースを入手して、ビルドします。

# wget http://www.cmake.org/files/v2.4/cmake-2.4.8.tar.gz
# tar xvzf cmake-2.4.8.tar.gz
# cd cmake-2.4.8
# ./configure
# make
# make install

# ls /usr/local/bin/
./  ../  cmake*  cpack*  ctest*

※ cmake本体は、/usr/local/binにインストールされます、PATHを通しておきましょう。



● Ubuntuに必要なパッケージ

Ubuntuインストール直後の環境では、SLビューアのビルドに、以下のパッケージが必要でした。
apt-get コマンドでパッケージをインストールしました。

# apt-get install g++
# apt-get install libx11-dev
# apt-get install bison
# apt-get install flex
# apt-get install zlib1g-dev
# apt-get install mesa-common-dev
# apt-get install libgl1-mesa-dev
# apt-get install libglu1-mesa-dev
# apt-get install libfontconfig1-dev




● FMODAPIの入手

Firelight Technologies社のサウンドライブラリ fmodapiを入手して、解凍します。

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




● SLビューア RC版 ソースの入手

Release Candidates版は以下のURLから入手します。

http://wiki.secondlife.com/wiki/Source_downloads/

Releases and Release Candidates ver RC-1.21.1
slviewer-artwork-viewer_1-21-1-r95603.zip
slviewer-src-viewer_1-21-1-r95603.tar.gz
slviewer-linux-libs-viewer_1-21-1-r95603.tar.gz




● SLビューア Shadow-Draft-2版 ソースの入手

影付きビューア shadow-draft-2版は、以下のURLで配布されています。
「shadow draft」で検索すれば見つかります。

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

Changeset 1140
Timestamp:09/03/08 13:29:48 (5 days ago)
Message:Snapshot of internal branch shadow-draft-2
Last Changed Rev: 95516

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




● SLビューアソースの解凍

入手した3ファイルを解凍したら、「linden」ディレクトリが作成されます。
ちなみに、slviewer-linux-libs-viewerを解凍しても中身はほとんど空っぽです。
ライブラリはmake中に、ネットワークからダウンロードされます。

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

$ cd linden/indra/




● コンパイル・ビルドの前に

コンパイル・ビルドの為の、スクリプト「develop.py」が用意されています。
まずは、ヘルプでオプションを確認します。
develop.pyの引数に、コマンドを指定する必要があります。

$ cd linden/indra/

$ ./develop.py --help

Usage:  develop.py [options] command [command-options]

Options:
 -h | --help print this help message
      --standalone build standalone, without Linden prebuild libraries
      --unattended build unattended, do not invoke any tools requiring
          a human response
 -t  | --type=NAME build type ("Debug", "Release", or "RelWithDebInfo")
 -N | --no-distcc disable use of distcc
 -G | --generator=NAME generator name
          Windows: VC71 or VS2003 (default), VC80 (VS2005) or VC90 (VS2008)
          Mac OS X: Xcode (default), Unix Makefiles
          Linux: Unix Makefiles (default), KDevelop3
Commands:
 build     configure and build default target
 clean     delete all build directories (does not affect sources)
 configure configure project by running cmake

If you do not specify a command, the default is "configure".




● いきなりbuild(configure and build)してはいけない。

いきなりbuildすると、途中でエラーで落ちます。
理由は、ダウンロードしたFMODAPIが所定のディレクトリに無いからです。



● まずは、configureから

$ ./develop.py configure

configure実行中に、これだけのパッケージがダウンロード、解凍されます。
ディスク、パーティションの空き容量には十分注意してください。-> 私のこと。。。。><;

ogg-vorbis-1.03-1.1.2-linux-20080613.tar.bz2
apr_suite-1.2.8-linux-20080618.tar.bz2
boost-1.32.0-linux-20080613.tar.bz2
expat-1.95.8-linux-20080613.tar.bz2
zlib-1.1.4-linux-20080618.tar.bz2
ares-1.4.0-linux-20080729.tar.bz2
curl-7.16.0-linux-20080613.tar.bz2
openSSL-0.9.7c-linux-20080613.tar.bz2
xmlrpc-epi-0.51-linux-20080618.tar.bz2
jpeglib-6b-linux-20080613.tar.bz2
libpng-1.2.18-linux-20080613.tar.bz2
openjpeg-1.2-linux-20080613.tar.bz2
gstreamer-linux-20080613.tar.bz2
libxml-2.6.24-linux-20080613.tar.bz2
GL-linux-20080613.tar.bz2
glh_linear-linux-20080613.tar.bz2
SDL-1.2.5-linux-20080613.tar.bz2
mesa-7.0-linux-20080613.tar.bz2
llmozlib-linux-20080613.tar.bz2
freetype-2.1.5-linux-20080613.tar.bz2
gtk-atk-pango-glib-linux-20080616.tar.bz
elfio-1.0.3-linux-20080613.tar.bz2
ndofdev-linux-20080618.tar.bz2
libstdc++-6.0-linux-20080613.tar.bz2
libuuid-linux-20080613.tar.bz2
vivox-linux-20080613.tar.bz2
fontconfig-2.2.3-linux-20080613.tar.bz2




● FMODAPIのコピー

configureが正常終了したら、linden配下にコピー先のディレクトリが作られています。
FMODAPIのインクルードファイルとライブラリをコピーします。

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




● つぎに、build

$ ./develop.py build

途中で以下のメッセージが表示されて、やたらと待たされます。
最初は、ハングアップしたのか?と勘違いしてしまいました。

Refreshing master cache from http://secondlife.com/app/message_template/master_message_template.msg
--- PASS ---
Same




● 実行しましょう~。

以下のディレクトリに、SLビューアのアーカイブが作成されます。

linden/indra/viewer-linux-i686/newview/SecondLife-i686-1.21.1.0.tar.bz2

解凍して、実行します。

$ tar xvjf SecondLife-i686-1.21.1.0.tar.bz2
$ cd SecondLife-i686-1.21.1.0/
$ ./secondlife




● 影の有効化は昔と同じ手順です。

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

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




● 完成~ ^^/

気のせいか以前に比べて、影が淡くなったような、イイ感じがします。
では、このまま、お気に入りの場所へ。 ^^





● めんどくさいのでシェルスクリプト化

#!/bin/sh

URL=http://secondlife.com/developers/opensource/downloads/2008/09
SRC1=slviewer-src-shadow-draft-2-r95516.tar.gz
SRC2=slviewer-linux-libs-shadow-draft-2-r95516.tar.gz
SRC3=slviewer-artwork-shadow-draft-2-r95516.zip

wget $URL/$SRC1
if [ $? -ne 0 ]; then
    echo "******** Download Error : $SRC1"
    exit 1
fi

wget $URL/$SRC2
if [ $? -ne 0 ]; then
    echo "******** Download Error : $SRC2"
    exit 1
fi

wget $URL/$SRC3
if [ $? -ne 0 ]; then
    echo "******** Download Error : $SRC3"
    exit 1
fi

URL=http://www.fmod.org/index.php/release/version
FMOD=fmodapi375linux.tar.gz

wget $URL/$FMOD
if [ $? -ne 0 ]; then
    echo "******** Download Error : $FMOD"
    exit 1
fi

tar xvzf $SRC1
tar xvzf $SRC2
unzip -o $SRC3

tar xvzf $FMOD

cd linden/indra/

./develop.py clean

./develop.py configure
if [ $? -ne 0 ]; then
    echo "******** develop.py : configure error"
    exit 1
fi

cp ../../fmodapi375linux/api/inc/*                   ../libraries/i686-linux/include/
cp ../../fmodapi375linux/api/libfmod-3.75.so  ../libraries/i686-linux/lib_release_client/

./develop.py build
if [ $? -ne 0 ]; then
    echo "******** develop.py : build error"
    exit 1
fi

cp viewer-linux-i686/newview/*.bz2 /usr/local/

exit 0

  


Posted by ぱすてる at 00:14Comments(7)SLViewer

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(正) にもどす




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

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


  


Posted by ぱすてる at 19:25Comments(5)SLViewer