資料室 過去ログ  2002年09月16日(月) 20:30 〜 2003年11月09日(日) 19:50
 ■Report Liblary..._____________
| HOME | | 最新3ページ | | 最新100リスト | | 10回毎一覧 | | ANDOR  | | 辞書 |

Close

Only
000040.ギガイーサ導入 
  (2003年11月09日(日) 19:50)

Open
2003/09/27(〜11/09数日に分けて)、100BASE-Tから1000BASE-Tに移行するために8ポートギガHUB、ギガNICを購入した。
カテゴリメーカー品名/型番税込値段
8Port GBit/HUBPLANEXFXG-08TXS\16,799(\17,109)ツクモeX.
GBit/NICIntelPWLA8390MT\5,480(\5,754)クレバリー
GBit/NICPLANEXGN-1200TC\2,977(\3,125)クレバリー
GBit/NICCoregaCG-GEPCI-T32\2,977(\3,125)クレバリー
GBit/NICCoregaCG-GEPCI-T32\2,950(\3,097)パソコンシティ
3mLAN-Cable Cat.5e不明LC-3EB\259(\271)あきばおー
5mLAN-Cable Cat.5e不明BTE-05SW\399×2(\837)あきばおー
10mLAN-Cable Cat.5不明URT45-CB10-BE\459(\481)あきばおー
15mLAN-Cable Cat.5e(白)不明BTE-15V\699(\733)あきばおー
15mLAN-Cable Cat.5e(黄)不明BTE-15Y\699(\733)あきばおー
10m電話線SONYTL-410(ZG)\300(\315)LAOX
  合計\35,580 
NICはどれが良いのか不明だったので3種類購入。BUFFALO製は除外。(w Intel製はちょいと高価で、これで統一することは無いだろうが、比較用に購入。 モジュラージャックからモデムを配置予定位置までちょっと距離があるので10mの電話線を購入。 ●相場について まずFXG-08TXSが最近発売とだけあって、なかなか売ってない。 ツクモ以外に、半期決算セール中のPlat'Homeにもあったが、値段が\17,000。 決算セールとか言う割には定価なんですが。 値切るのも面倒なので、3%割引タイムセールしてたツクモで購入。 秋葉原にビックピーカンが無いのが残念だが、もしあれば定価の10%還元で\16,065なのだろうか。 明らかに最安値なのだが、まず扱ってなさそうなので取り寄せになるだろう。 ギガHUBは5ポートなら約\10,000ちょいが相場らしい。 で、NICだが、今回はクレバリーで購入したが、最安値はツクモeX.の3%タイムセール。 \2,979で、3%割引と税入れて\3,034。 前回、DVDマルチプラス買った時もそうだが、ツクモが今更あなどれないと思った。 LANケーブルはあきばおーのバルク品が他と比較にならないほど安かった。 10mのCat.5はエンハンスドと間違えて買ってしまった。 7mくらいがベストな長さなのだが、5mの上は15mしか売ってなかった。 10mのCAT.5eはフリージアで\680(\714)が最安値っぽかった。 最近じゃCat.6も一部のショップでは出てきているようで。 ●適当に導入 100BASE-TのNICを外して変わりに取り付けたが、以前のドライバが残ってて誤動作したので、 起動時にF8押してセーフモードで立ち上げ、余計なドライバを削除し、 再起動し、付属CDのドライバを入れた。 以前使っていたメーカーCoregaのほうは特に問題ないが、 PLANEX製のほうは正常認識しているにもかかわらず、ネットワークプロパティの Connection TypeをAuto-Negotiationにすると100BASEになってしまうので1000BASEを選択した。 ●Linux対応について Intel製のには特に記されていないが、いづれも「Linuxで動作確認したが保証外」とのこと。 BUFFALO製のにはドライバが付属しているらしいけど、あまりにも人気が無いので今回は比較対象外。 coregaのサポートページを見ると「tg3」とかいうドライバーを使うらしい。 http://www.ne.jp/asahi/tokyo/shin/linux/disktop/tips.htmlに色々記載されている。 「tg3」ドライバについてはLinux Kernel 2.4.19以降についてくる。 dselect等では最新は2.4.18なので、ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.19.tar.gzあたりから持ってきた。 Networking Optionにギガイーサ関連のドライバ設定があり、tg3系を追加する必要がある。 ppp関連、iptable関連も当然必須になる。 ●性能とか Linux<->Win、Win<->Winともに11MB/secくらいの実質転送速度が出ている。 PCIやHDDの性能も考慮して、まあ、こんなものではなかろうか。 ●今回もcoregaで統一かな PLANEX製は問題が出たのでcoregaで統一しようと11/05に秋葉原でもう一枚購入。で、値段比較。
税込値段
パソコンシティ\2,950(\3,097)
クレバリー\2,977(\3,125)
ツクモ\2,979(\3,148)
ソフマップ\2,980(\3,129)
まだギガイーサは主流ではないためか、TWOTOPとかT-ZONEには売ってなかったり。 結局、パソコンシティが最安値でした。 ソフマップは1%還元されるかもしれないけど対象かどうかわからなかったので。 ツクモがまた3%引きやれば最安値だったようだが、いつやってるのかわからず。 あと思ったのが、BUFFALO製のは\2,950〜\3,480と、相場にばらつきがあるようで。 ●その他 なぜフロントにコネクタがあるのか。 使い辛くてしょうがない。すっきりしないし。 そして、ポート番号表記がコネクタの下側にある。 これは設計ミスというか、デザインミスに近いものかと。 Intel製NICの評価はまた次回。 って、普通に何も変わらないだろうが。 年末に大掛かりなデータ転送行う予定なので、そこで耐久性評価とか。 ●関連リンクPLANEXツクモeX.クレバリーCoregaパソコンシティあきばおーPlat'Home


Close

Only
000039.J-SH53に機種変 
  (2003年09月02日(火) 00:41)

Open
J-SH53購入
6月の上旬に機種変が始まったらしいが、開始日に即終了。
Vodafoneショップで予約したが2ヶ月待ちとのことで、8/9にようやく届いた。
J-SH02からの機種変で、既に4年近く経っているので\16,065で変更できた。
なんといってもアンテナがほとんど無いのが一番嬉しい。
それと、写メールするつもりはあまり無いが、スーパーメールの契約を行っておいた。
カテゴリ型番メーカー値段(税込)
携帯電話J-SH53SHARP\16,065J-Phoneショップ
保護シールパーフェクトガードナーRBPH006ラスタバナナ\380(\399)laox
クリップ付きストラップのびるくんNB21BK明和産業\480(\504)laox
512MB SDカードHPC-SD512MHagiwara SYS-COM\23,800(\24,990)ZOA
合計\41,958
というか、SDカードが高い。512MBも必要なのか?と問いたい。自分に。 まあ、以前購入したMP3プレイヤーは128MBだったが、全然少ないと感じていた。 デジカメでリムーバブルドライブっぽく扱えるし、何かと便利かなぁと考えてみたり。 ●代表的な機能
メガピクセルCCDモバイルカメラ
最近の携帯ではCCDカメラが付いているのはごく当たり前の事だが、精度がようやくメガピクセルになった。
1144×858ドットの解像度で撮影が可能。
撮ってみた感じは以下の通り。各画像から縮小前の元画像にリンクしています。
SH53 距離50cm 通常ModeSH53 距離50cm 接写ModeSH53 距離10cm 通常ModeSH53 距離10cm 接写Mode
Finecam 距離50cm 通常Mode Finecam 距離10cm 接写Mode 
Finecamでは2560x1920で
撮った画像を1144x858に
縮小しています。

SH53は100万画素
Finecamは500万画素
 
QVGAシステム液晶ディスプレイ
240×320ドット1670万色相当らしい。本当に綺麗である。
サイズもQVGAなので、適当なゲームのキャプチャ画面がそのまま貼れる。
とりあえず背景画像を作ってみたので下に貼っておきます。ご自由にどうぞ。
JAVAアプリ
従来は128KBまでのサイズ制限があったようだが、SH53では256KBまで対応している。
携帯でアクションものは、操作的にあまり出来る気がしないのでDLしてない。
接続料や月額も面倒臭いので、DLしたきり(従量課金)のアプリを買ってみた。
Jフォンメニュー > J-スカイメイン > ケータイゲーム あたりから探してみた
マジカルドロップONCE
ONCEってなんだ?よくわからないが、ひたすらモードでかんたんを数回やってみた。
最高得点:58656 最高レベル:30 最高連鎖数:13 最高プレイ時間:13:10
移動がやりにくく、後付け連鎖しにくい。まあ仕方ないですな。
若干バグあり。>突然死、空中浮遊
大富豪
トランプゲームの大好きな大富豪。ルールは主にそのまんまで、下記ルールがON/OFF可能。
  8切り:8を出すと強制流れ
  スペ3:ジョーカーに対してスペードの3で勝てる
  都落ち:大富豪の人は次ぎのゲームで大富豪になれない場合、強制で大貧民になる
COMが3人なので、合計4人。
連番は3枚以上同マークから。イレブンバックルールは無し。
ジョーカー、2、8、スペ3上がりは反則で、強制大貧民。
大貧民は大富豪に強いカード2枚献上、貧民は富豪に強いカード1枚献上。
モーションカメラ(ムービー写メール)
ムービーもパワーアップしたらしいので、とりあえず撮ってみた。
3gpとかいう形式で、MediaPlayer等では再生できなかったのでphilipsからプレイヤーをダウンロード。
撮影サイズは128x96で、4fpsくらいではなかろうか。
遊ぶには充分かと思う。
セキュアMP3プレイヤー
MP3プレイヤーにもなる。電池がすぐ切れそうだけど有用ですな。
で、形式は「セキュアMP3」のものらしい。(ZDNet記事参照
セキュアMP3変換&SDカードライターSD-Jukebox
もうちょい調査して場合によっては購入するかも。

上記のものを使わないのであれば直接録音しかないらしい。
面倒なので、今のところ未使用。
他にも着信メロディとかいろいろ作ってみたり、Javaアプレットも作ってみたいが、そのへんはまたそのうちということで。 512MBのSDカードを買ったが、デジカメのほうだけで使いそうな感じである。 関連リンク: ・J-SH53J-Phone Developer ProgramZOASD-JukeboxセキュアMP3に関するZDNet記事


Close

Only
000038.パワーグローブのリメイクっぽい「P5」を使ってみる 
  (2003年08月27日(水) 03:00)

Open
●パワーグローブのリメイクか?
AKIBA Hotlineの2003/07/05の記事を見てパワーグローブのリメイクかと思った。
まあ、当然違う。Essential Realityという海外の会社の製品である。
デバイスマニアは即ゲットと思い、当日のうちにOVERTOPに買いに行ったが既に売り切れ。
PC Watchの2003/07/10の記事ではその使用感がレポートされている。
実物は以下の通り。

右手専用で、各指に角度感知用のゴム質の板が伸びている。
甲には4つボタンがあり、一番手前は電源ボタンになっているので、実質3つということに。
写真左側にある紺に黒の顔のタワーはセンサー。
USBでセンサーとPCを繋ぎ、又、センサーとグローブの間にも1メートル程のコードがある。
実際にはセンサーからグローブが50センチくらい離れると検知してくれないので、部屋を暗くするとかの対策が必要。

●実際に買ってみて
数が少ないためか、予想以上に人気があるのか、ようやく買えたのは2003/08/16のことである。
カテゴリメーカー品名/型番税込値段
グローブ型デバイスEssential RealityP5 -the Power of Five-\11,340OVERTOP
  合計\11,340 
HPからドライバをDLしてきてインスト。 Air Lockなるトレーニングソフトが一緒にインストされるのでそれで練習。 空間上にゆっくり跳ね回る10個くらいのボールを掴むだけのゲームだがかなり難しい。ゲームがじゃなくて操作が。 付属のTigerHuntなるゲームをインストしてやってみようとしたが、タイトルからメニューを選んだ直後に確定ハングアップ。 意味わからん。他にも2種類のゲームがありましたが、やる気が起こらずまだ試していない。 ウィンドウオペレーションもやってみたが、テーブルに置いて静止した状態でもカーソルがブレる。 部屋の明かりを消したらいくらかマシになったが、そんな状況はまさに暗黒太極拳。 そんなものを動かして人差し指だけ曲げてクリックしなければならないので、相当な熟練が必要と思われる。 というわけで、常用利用は無理である。 そんなことより、せっかくSDKも公開されていることだし、これを使って人々の役に立たないことは出来ないだろうかと思った。 別に役立つツールを作っても良いのだが、かなり状況や環境を選ぶのため、正直言って、何か作っても使人は居ないだろう。 と、上記のことは覚悟の上、ネタのために購入したものなので無問題。 ●SDKを使ってみよう(1.準備) 今メインで使っているPC(資料室記事参照)は、ドライバ等の関係上DirectX9では正常動作しないので、 DirectX8.1環境で作成を行った。 DirectXをまじめに書くとかなり手間なので、DirectX8.1用ライブラリ「Luna」をc:\LunaSDK\に導入した。 スキンアニメーションを使うので、c03のサンプルもDLした。 (このページにはDirectX等のかなり役立つTipsがあるのでいつも利用させて頂いてます。) で、P5のSDKもDLしてc:\p5sdkに導入した。 なにやら色々インストされるが、開発に使うのは「C:\P5SDK\P5api\*.*」と、「C:\P5SDK\P5Utils\*.*」だけである。 ●SDKを使ってみよう(2.プロジェクト)ソースと実行ファイル一式 (1.準備)でDLしといたc03を解凍し、*.dswをダブルクリックしてVC++を起動してみる。 今回はLunaに関しての説明は特に行わず、使ったことがあるということを前提とする。 (といっても、見ての通りなんで、ほとんど問題ないとは思うが。) で、とりあえず「メニュー>プロジェクト>設定」を行う必要がある。 ・C/C++タブ カテゴリ”一般”の最適化は「実行速度」で。 カテゴリ”プリプロセッサ”のインクルードファイルのパスを 「c:/LunaSDK,c:/p5sdk/p5api,c:/p5sdk/p5utils」に設定。 ・リンクタブ カテゴリ”一般”のオブジェクト/ライブラリモジュールに 「C:\P5SDK\P5api\p5dll.lib」を追加し、デフォルトライブラリをすべて無視のチェックを外す。 カテゴリ”インプット”の追加ライブラリのパスに「c:/LunaSDK」を設定。 カテゴリ”カスタマイズ”のインクリメンタルリンクを行うにチェックを入れる。 下記、今回のサンプルソース。c03の初期状態から変更した部分は緑文字にしてある。
ソースコード追記コメント
//=============================================================================
// INCLUDE
//=============================================================================
#include "Luna.h"
#include "p5dll.h"
#include "P5Motion.h"
#include "P5Bend.h"
P5用のヘッダーをincludeする。
//=============================================================================
// DEFINE
//=============================================================================
//#define SCREEN_WIDTH    512
//#define SCREEN_HEIGHT    384
#define SCREEN_WIDTH    800
#define SCREEN_HEIGHT    600
#define FRAME_RATE        60
見やすいように解像度を上げてみた。
たかが実験用なので重くないし。
お好みに合わせてご自由にどうぞ。
//=============================================================================
// PROTOTYPE
//=============================================================================
static void KeyDownProc( unsigned long wp, unsigned long lp );

//=============================================================================
//
//        ☆アプリケーション初期設定
//
//=============================================================================
void Luna::InitSystem( void ) {
    //---------------------------------------------
    // タイトル名設定
    Luna::SetTitle( "pp5" );

    //---------------------------------------------
    // 画面サイズ設定
    Luna::SetScreenData( SCREEN_WIDTH, SCREEN_HEIGHT );

    //---------------------------------------------
    // FPS設定
    Luna::SetFrameRate( FRAME_RATE );

    //---------------------------------------------
    // 画面モード設定
    //   ウィンドウモードの時はTRUE
    Luna::SetWindowMode( FALSE );

    //---------------------------------------------
    // マウス可視設定
    //   マウスを表示させる時はTRUE
    Luna::SetShowMouse( FALSE );

    //---------------------------------------------
    // FPS可視設定
    //   FPSを表示させる時はTRUE
    Luna::SetShowFPS( TRUE );

    //---------------------------------------------
    // メッセージ処理用関数設定
    Luna::SetMessageCallBack( WM_KEYDOWN, KeyDownProc );

    //---------------------------------------------
    // 使用するAPIを設定
    Luna::SetUseAPI( USE_DIRECT3D | USE_DIRECTINPUT );

    //---------------------------------------------
    // デバッグ用ログファイル名設定
    SetLogFileName( "debug.log" );
}

//=============================================================================
//
//        ☆メインループ
//
//=============================================================================
void Luna::Main( long ArgNum, char *pArgStr[] ) {
    #define S_BUF 30
    float buf_yaw[S_BUF+1], buf_roll[S_BUF+1], buf_pitch[S_BUF+1], buf_x[S_BUF+1], buf_y[S_BUF+1], buf_z[S_BUF+1];
    int buf_no = 0, lp;
    bool p5m_flag;        //P5のマウス状態保存
    long LightAngle[3] = { 0, 0, 0 };
    float fAnimeTime = 0.0f;
    RECT region;
    CP5DLL P5;

    //--------------------------------------------------------
    // 初期化処理
    //--------------------------------------------------------
    P5.P5_Init();
    P5Bend_Init( &P5, 0 );
    P5Motion_Init( &P5, 0 );
    P5Motion_InvertMouse( P5MOTION_INVERTAXIS, P5MOTION_NORMALAXIS, P5MOTION_NORMALAXIS );
    GetClipCursor( ®ion );
    region.left = region.top = 0;
    region.right = SCREEN_WIDTH;
    region.bottom = SCREEN_HEIGHT;
    P5Motion_SetClipRegion( region.left, region.right, region.top, region.bottom, 0, 1000 );
    p5m_flag = P5.P5_GetMouseState( 0 );
    P5.P5_SetMouseState( 0, false );
カーソルがブレるため、30回分の平均値を取ることにした。

CP5DLLを定義してP5を利用可能状態にする。
初期化はサンプルソースから左記述のような感じで良いと思われる。
P5.P5_Init();、P5Motion_Init( &P5, 0 );でまさに初期化。
P5Motion_InvertMouseは、回転や位置をリバースしたりする時に使う。
GetClipCursor( ®ion );で解像度を取るが、使ってない。(ぉ
P5Motion_SetClipRegionで解像度を設定する。
P5.P5_GetMouseState( 0 );でID0のP5デバイスのマウスON/OFFを取得し、
一度、P5.P5_SetMouseState( 0, false );でマウスモードをOFFにする。

    //------------------------------------------------
    // Zバッファ作成
    //------------------------------------------------
    LSURFACE pZBuffer = LunaSurface::CreateZBuffer( SCREEN_WIDTH, SCREEN_HEIGHT );
    // デバイスにZバッファを設定
    pZBuffer->SetDepthBuffer();

    //------------------------------------------------
    // カメラ作成
    //------------------------------------------------
    LCAMERA pCamera = LunaCamera::Create();
    pCamera->SetProjection( 30.0f, 1.0f, 10000.0f );    // プロジェクション
    pCamera->InitTransform();                            // 変換初期化
    pCamera->Translation( 0, 0, -1200 );                // 移動
    pCamera->DynamicTransform();                        // 変換更新
    pCamera->SetDevice();                                // デバイスに設定
    //------------------------------------------------
    // モデルデータ読み込み
    //------------------------------------------------
    LMODEL m[6];
    m[0] = LunaModel::LoadFileX( "0.x" );
    m[1] = LunaModel::LoadFileX( "1.x" );
    m[2] = LunaModel::LoadFileX( "2.x" );
    m[3] = LunaModel::LoadFileX( "3.x" );
    m[4] = LunaModel::LoadFileX( "4.x" );
    m[5] = LunaModel::LoadFileX( "5.x" );
0が親指で、順になっていて4が小指、5が手のひらのモデルデータ。
フリー素材を扱っているmetanoiaから拝借し、
metasequoiaで指を切断して、LightWaveで骨入れてモーション入れて、
xファイルで書き出しました。
metasequoiaからのxファイルエクスポートのモデルは
なぜかLunaでは表示されず。
    //------------------------------------------------
    // テクスチャ描画に関する設定
    //------------------------------------------------
    Luna3D::SetTextureState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );    // 色の引数1(テクスチャの色
    Luna3D::SetTextureState( 0, D3DTSS_COLORARG2, D3DTA_CURRENT );    // 色の引数2(設定した頂点色
    Luna3D::SetTextureState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );    // 色の算出方法(引数1×引数2

    Luna3D::SetTextureState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );    // アルファの引数1(テクスチャの色
    Luna3D::SetTextureState( 0, D3DTSS_ALPHAARG2, D3DTA_CURRENT );    // アルファの引数2(設定した頂点色
    Luna3D::SetTextureState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );    // アルファの算出方法(引数1×引数2

    //------------------------------------------------
    // レンダリングステートの設定
    //------------------------------------------------
    Luna3D::SetRenderState( D3DRS_CULLMODE, D3DCULL_CCW );        // 左回りにカリング
    Luna3D::SetRenderState( D3DRS_ALPHABLENDENABLE, FALSE );    // 半透明処理OFF
    Luna3D::SetRenderState( D3DRS_ZENABLE, TRUE );                // ZバッファON
    Luna3D::SetRenderState( D3DRS_ZWRITEENABLE, TRUE );            // Zバッファ書き込みON
    Luna3D::SetShadeMode( SHADE_SMOOTH );                        // スムースシェーディング

    //--------------------------------------------------------
    // ゲーム用ループ
    //--------------------------------------------------------
    while ( WaitForMsgLoop() ) {
        //------------------------------------------------
        // 画面クリア
        //------------------------------------------------
        //Luna3D::Clear( D3DCOLOR_XRGB(192,128,128) );
        Luna3D::Clear( D3DCOLOR_XRGB(255,255,255) );
        // Zバッファクリア
        Luna3D::ClearZ();
        // P5初期化
        P5Bend_Process();
        P5Motion_Process();
メインのループの中で、P5Bend_Process();と、
P5Motion_Process();を実行してセンサースキャンする。
ちなみにやんなくても、
デフォルトで秒間何十回かスキャンしてるようで通常通り使える。
        //------------------------------------------------
        // 3D描画開始
        //------------------------------------------------
        if ( Luna3D::BeginScene() ) {
            LVECTOR vLight;
            //------------------------------------------------
            // ライト設定
            //------------------------------------------------
            LunaLight::SetAmbient( 0.2f );
            LightAngle[0] += 256;
            LightAngle[1] += 384;
            LightAngle[2] += 512;
            // ライト1
            LVECTOR vLight1( COSF(LightAngle[0]), 0, SINF(LightAngle[0]) );
            LunaLight::SetDiffuse( 0, 1.0f, 1.0f, 0.9f );
            LunaLight::SetDirection( 0, &vLight1 );
            LunaLight::SetActive( 0, TRUE );
            // ライト2
            LVECTOR vLight2( SINF(LightAngle[1]), COSF(LightAngle[1]), 0 );
            LunaLight::SetDiffuse( 1, 1.0f, 0.9f, 0.9f );
            LunaLight::SetDirection( 1, &vLight2 );
            LunaLight::SetActive( 1, TRUE );
            // ライト3
            LVECTOR vLight3( 0, SINF(LightAngle[1]), COSF(LightAngle[1]) );
            LunaLight::SetDiffuse( 2, 1.0f, 1.0f, 1.0f );
            LunaLight::SetDirection( 2, &vLight3 );
            LunaLight::SetActive( 2, TRUE );
            //------------------------------------------------
            // モデルデータのトランスフォーム
            //------------------------------------------------
            fAnimeTime ++;
            if ( fAnimeTime > 60 ) fAnimeTime = 0;
            buf_x[buf_no] = P5.m_P5Devices[0].m_fx;
            buf_y[buf_no] = P5.m_P5Devices[0].m_fy;
            buf_z[buf_no] = P5.m_P5Devices[0].m_fz;
            buf_yaw[buf_no] = P5.m_P5Devices[0].m_fyaw;
            buf_roll[buf_no] = P5.m_P5Devices[0].m_froll;
            buf_pitch[buf_no] = P5.m_P5Devices[0].m_fpitch;
            buf_no = (buf_no+1)%S_BUF;
            buf_x[0] = buf_y[0] = buf_z[0] = buf_yaw[0] = buf_roll[0] = buf_pitch[0] = 0;
            for( lp = 1; lp <= S_BUF; lp ++ ) {
                buf_yaw[0] += buf_yaw[lp];
                buf_roll[0] += buf_roll[lp];
                buf_pitch[0] += buf_pitch[lp];
                buf_x[0] += buf_x[lp];
                buf_y[0] += buf_y[lp];
                buf_z[0] += buf_z[lp];
            }
            for( lp = 0; lp < 6; lp ++ ) {
                m[lp]->InitTransform();                    // 変換初期化
                m[lp]->Scaling( 3, 3, 3 );
                m[lp]->RotationY( (long)buf_yaw[0]*192/S_BUF );
                m[lp]->RotationZ( ANGLE(10)-(long)buf_roll[0]*192/S_BUF );
                m[lp]->Pitching( ANGLE(10)-(long)buf_pitch[0]*192/S_BUF );
                m[lp]->Translation( buf_roll[0]/S_BUF, buf_roll[0]/S_BUF, 0 );        //回転時の微調整
                m[lp]->Translation( buf_x[0]*1.2/S_BUF, buf_y[0]*1.2/S_BUF, buf_z[0]*1.2/S_BUF );
                if( lp < 5 ) {
                    m[lp]->DynamicTransform( (float)P5.m_P5Devices[0].m_byBendSensor_Data[lp]*4/5 );        // 変換更新
                } else {
                    m[lp]->DynamicTransform( fAnimeTime );
                }
                m[lp]->Rendering();        // 描画
            }
適当コーディングでスマンです。
P5から位置、回転、指の情報を取得し、
モデルをそれにあわせて移動回転し表示しています。
S_BUFの前の倍率は、適度な動きになるよう調整した結果です。
P5の変数とかは後述します。
            //------------------------------------------------
            // 3D描画終了
            //------------------------------------------------
            Luna3D::EndScene();
        }

        //------------------------------------------------
        // 画面更新
        //------------------------------------------------
        Luna3D::Refresh();
    }
    //--------------------------------------------------------
    // 終了処理
    //--------------------------------------------------------
    P5.P5_SetMouseState( 0, p5m_flag );
    P5.P5_Close();
    for( lp = 0; lp < 6; lp ++ ) {
        m[lp]->Release();
    }
P5の終了処理。
直後、P5LIB.DLLでエラーが出るんですが、謎。
    pCamera->Release();
    pZBuffer->Release();
}


//=============================================================================
//
//        ☆キー押下メッセージ用
//
//=============================================================================
void KeyDownProc( unsigned long wp, unsigned long lp ) {
    switch ( wp ) {
    //------------------------------------------------ ESCキーで終了
    case VK_ESCAPE:
        Luna::Exit();
        break;

    //------------------------------------------------ F1キーで画面モード切替
    case VK_F1:
        Luna::ChangeScreenMode();
        break;
    }
}
Luna系の関数に関してはLunaのヘルプを参考にして欲しい。 P5については付属マニュアルを適当に訳したものを作ってみたので、そちら参照。 動作確認が出来なかった関数や、不明点もあるが、わかり次第追記したいと思う。 (というか、情報あれば下さい。) ●どんな感じで動くのよ 先述べしたように粗悪品であるため、いまいちな動きしか出来ないですね。 Finecam S5で動かしてる所を撮ってみた。avi形式をzipで圧縮 30秒 約3.4MB。 デジカメでムービー撮るとこんなものですかね。 TMpegEncで音を外そうと思ったが、サポートされてないとかで無理でした。 撮り損ねたけど、前後にもちゃんと動きます。仕様上は。 下はディスプレイに向かってピースしてみた時のキャプチャ画像。 指の動き具合がちょっとアレなのは気にしない方向で。 さて、ここからいろいろ遊んで見ますが、それはまた次回。 何か有効な使用手段無いものでしょうか。 googleとかで検索しても、この製品関連は何にも無いですね。 操作感が悪いので本当にネタ止まりになりそう。 性能UP版が発売されたりしたらガッカリ。 ●その他の気になるデバイス さて、ネタとして買った今回のデバイスだが、ちょっと似ているのもあってどちらにしようか迷った。 Gyration Ultra Cordless Optical Mouse(以下GUCOMouse)なるものは、マウスカーソルをレーザーポインタのように操作できる。 User's Sideで実売価格\14,800で、型落ち版(操作範囲が狭い)は\13,800。 どうせ感度はよろしくないのだろうと思ったらそんなこともなくグリグリ動かせる。 電池内臓でちと重い気がするが、まあ仕方ないだろう。 知人から2〜3年ほど前にジャイロを使った空中マウスの構想を聞いたことがある。 当時のジャイロの精度とコストでは一般向けマウスは難しいとのことだった。 で、GUCOMouseはまさに上記の方法を使っている。 気が向けば買おうと思う。当然上位を。 ホイールについて6〜7年前くらいから気になっていたのだが、ホイールの変わりにボールをつければ上下左右に動かせる。 6年くらい前まだ光学式が珍しかった頃、縦と横のホイール2つ付いた物や、十字キーが付いた物、ポイントデバイスがついた物が発売した。 まあそれでも代用はできるが、ポイントデバイスのほうはIBM製だったために操作感がいまいちだった。 最近になって秋葉原巡回中にようやく発見したのがMFB2US-BL あまり需要が無いようで売っているのを見かけるのは稀。オンラインではmurauchi.comとかで見つけた。 6年前に欲しかったのはコレ。で、使ってみたが最悪。さすが安物。 光学マウスは主に解像度とスキャン回数で評価するものだと思う。 解像度は数値が高いとちょっとした動きでも感知してくれ、より細かい動きが出来る。 スキャン回数はどれくらい動いたかを定時間内に測定する回数であり、高いほどなめらかに動かせ、すばやいオペレーションにも対応できる。 どれくらい必要かは下記の通りだと思う。ちょっと不明部分もあるので参考までにということで。
 粗悪品安物普通良品
解像度200dpi400dpi600dpi800dpi
スキャン回数1500/sec2000/sec4000/sec6000/sec
MFB2US-BLでは解像度が400dpi、スキャン回数は表記されていないが、触った感じ1000〜2000程度。 スキャン2000回で安物と判断しているが、正直使い物にならない。(過去資料室記事参照) 高くてもいいので良品を作って欲しかった。 で、今更MSもなんか開発したようで。 現在、安心して利用出来るマウスはMS製しかないので、ちょっとは期待している。 関連リンク: ・ソースと実行ファイル一式AKIBA Hotlineの2003/07/05の記事PC Watchの2003/07/10の記事GAME Watchの2002/01/10の記事P5の日本語マニュアル ・Luna開発HP:TWINTAIL LOVORS. ・P5のメーカー:Essential Reality ・P5のSDK:Essential Reality: Developers ・フリー素材:metanoia ●2005/04/11追記 Essential Realityって無くなっちゃったようですね。 SDKやらマニュアルやらもダウンロード出来なくなってたので、ここにUPしときます。 内容確かめてないんで、なんか違うものだったら教えてください(ぉ ・マニュアル(PDF)P5_Manual.pdf ・ドライバ2.0P5driver2_0.zip ・ドライバi386p5driver-i386-0.10.tgz ・ドライバi386ソースp5driver-i386-0.10-src.tgz ・インストーラP5SETUP.ZIP ・ツール各種P5Wizard.zip ・SDKSDKsetup.zip


Close

Only
000037.DVDマルチプラス購入 
  (2003年08月12日(火) 00:19)

Open
●ようやく記録型DVDドライブを購入。

※今回の写真はすべてJ-SH53で撮影

カテゴリメーカー品名/型番税込値段
DVDマルチプラスIO DATADVR-ABH4\31,290俺コン
IDE133ケーブル不明(ショップメイド?)A133S90\1,659パソコンシティ
電源分岐ケーブルYOKOFC-555\315パソコンシティ
結束バンドHSK結束バンド(小)30P\103あきばお〜
ディスクケースCELSUSCDK-200\2,079あきばんぐ
DVD-RAMメディア 1枚TDKDVD-RAM94Y4F\1,206あきばお〜
DVD-Rメディア 10枚TDKDVD-R47PWX10G\2,507あきばお〜
  合計\35,446 
2003/08/02(土)に発売したものの、在庫数が極端に少なく即完売したもよう。>参照記事 発売日も不明(少なくとも私は知らなかった)なため、その日には買えず、 2回目の出荷2003/08/09(土)の朝10:00頃からそこらを探索した。 売ってたのは俺コンのみ。 SOFMAPでは\29,799円で予約受付中。 尚、新商品のためSOFMAP会員でも1%還元は付かないので、税込みで\2安いのみとなる。 ワンダーシティ、TWOTOP、クレバリー、T-ZONEなどでは品切れで、 俺コンでも在庫は見たところ残り2〜3台ほどのようだった。 2003/08/16、最安値はTSUKUMO-EXの18%還元を考慮した\25,657。 1週間で\5,633も値下がりしてしまった。 他店で売り切れの中、独占で在庫を持ちつつ安価で売っている。 そして、DVD-RAMメディアは1枚\1,206だが、3枚セットで買うと\3,774(1枚あたり\1,258)に値上がりする。 値札のミスかとは思うが、ちゃんと値段も確かめよう。 ●メディアについて ドライブ自体の性能や、メディアの品質、相性によって 読めなくなってしまったりということも良くある話らしい。 DVD-RAMには「交替処理機能」という品質を保つ機能がある。 ようするに、不良セクタがあったら、別の正常なセクタを自動で使ってくれる機能だが、 当然、不良セクタが多いと容量が減る。 ZDNETの記事でこのことについて書かれている。 悪質な業者(主に海外らしいが)はこの機能に頼って、 コストを削減したいわゆる粗悪メディアを生産しているらしい。 交替処理機能のおかげである程度は普通に読めるらしいが、 保存用媒体として信用できる物なのかが怪しいところ。 あきばんぐのページを見ると、取扱商品で各種メディアが書かれてて見やすい。 DVD-RAMのページとかを見るとお勧めも書かれていて助かる。 鵜呑みに出来るわけではないのでZDNET記事でも参考に。 でもまああとは実際に試してみるしかない。 書き込みテストについては後記。 今回のドライブはカートリッジタイプではないため、カートリッジから取り出し不可能タイプののもは サポートしていないと記述されている。(割ってしまえば使えるのだろうが) あとは2.6GBのDVDは読み込みのみとのこと。 ●その他材料購入 ・IDE133ケーブル  5インチベイの一番上にモービルラック、2番目に今回のDVDマルチプラスを付けようと思ったのだけど、  IDEケーブルが届かず、長いのをパソコンシティで購入。    ・電源分岐ケーブル  ついでにUSER'S SIDEには売ってなかった、電源分岐ケーブルも\300で購入。  直後、俺コンの前あたりに最近(?)出現した三月兎という店で\100で売ってた。ちょっと不覚。 ・結束バンド  電源ケーブルやらなんやら、纏めないととても触りにくかったので。 ・ディスクケース  ちょっと大き目のを購入。  160枚ケースでは、前期と後期で写真と中身が違うものがあった。  しっかりとお店の人に聞こう。     >前期版(左上)はポケットに1本スリットが入っている。   CDを入れると、上1.5cmくらいがはみ出るので、いちいち手で中に入れてやる必要があるが、   逆さまにしても落ちない。というか、ケース全体でジッパーがあるのだから元々落ちないと思うが。  >後期版(左下)はポケットのふた部分がヒラヒラと開閉する。   ヒラヒラ過ぎて、閉じるときに絶対に折れ曲がってしまう。   物理学的におかしい不良品。こんなのワゴンセールの380円が良いところ。  >今回(右)の200枚入りのはふたが無く、ディスクの中心部まで湾曲してえぐられている形。   逆さにしたらズレそうだが、まあ全体をジッパーで閉じるんだし、出し入れしやすいし。 ●書き込みテスト ドライブはリムーバブルドライブとして認識している。 DVD-RAMディスクを入れて初期化し、どこぞでキャプったムービーを適当に 6ファイル(約4GB)集めて、一気にドライブに放り込んでみたところ57分で書き込み終わった。 RAMの書き込み速度は3倍と表記されているが、上記状態では約2倍の速度だった。 次はB'sGOLDで6ファイル(約4.2GB)をDVD-Rにオンザフライで焼いてみた。 18分くらいで終わったが、セッションクローズ中になぜかトレイが自動で開いてそのまま閉じた。 完全に終わったときにまた開いた。こういうものなのだろうか。 Nero CD-DVD Speedなるものがあるので、 焼き終わったDVD-Rを入れて計測してみた。 CD/DVDの読み書き状態を計測するソフトKProbeというソフトも良く使われているらしいが、 うちではINVALIDが出て計測できず。

Nero CD Speed Test results

General Information
Operating SystemWindows 2000
DriveHL-DT-STDVDRAM GSA-4040B
Firmware VersionA105
Serial NumberM0037TF1820
DiscDVD-R
Capacity4.00 GB

Transfer Rate
Start3.44x
End7.99x
Average6.03x
TypeP-CAV



Seek Times
Random106 ms
1/3153 ms
Full180 ms

CPU Usage
1X8 %
2X15 %
4X30 %
8X59 %

Interface
Burst Rate12645 KB/sec

Spin Up/Down Times
Spin Up Time0.00 sec
Spin Down Time2.05 sec

Load/Eject Times
Load Time1.11 sec
Eject Time1.60 sec
Recognition Time14.60 sec

Log
TimeElapsedAction
[20:23:24]転送レートテストの開始
[20:32:26]転送速度:3-8 X P-CAV (6.03 X 平均)
[20:32:26]経過時間: 9:02
[20:32:26]シーク時間テストの開始
[20:32:37]Random シーク: 106 ms
[20:32:52]1/3 シーク: 153 ms
[20:33:10]Full シーク: 180 ms
[20:33:10]経過時間: 0:44
[20:33:10]CPU利用率テストの開始
[20:33:25]次のCPU利用率 1X: 8 %
[20:33:41]次のCPU利用率 2X: 15 %
[20:33:56]次のCPU利用率 4X: 30 %
[20:34:12]次のCPU利用率 8X: 59 %
[20:34:12]経過時間: 1:02
[20:34:12]バーストレートテストの開始
[20:34:13]インターフェースバーストレート: 12 MB/sec (12645 KB/sec)
[20:34:13]経過時間: 0:01
[20:34:13]スピンアップ/ダウンテストの開始
[20:34:15]スピンアップ時間: 0.00 seconds
[20:34:27]スピンダウン時間: 2.05 seconds
[20:34:27]経過時間: 0:14
[20:34:27]ロード/イジェクトテストの開始
[20:34:29]イジェクト時間: 1.60 seconds
[20:34:30]ロード時間: 1.11 seconds
[20:34:45]認識時間: 14.60 seconds
[20:34:45]経過時間: 0:17
と、なんか普通というか、良さそうな感じ。 で、ついでに隣のPIONEERのDVD-ROMドライブでも計測。

Nero CD Speed Test results

General Information
Operating SystemWindows 2000
DrivePIONEER DVD-ROM DVD-115
Firmware Version1.22
Serial Number
DiscDVD-R
Capacity4.38 GB
Log
TimeElapsedAction
[02:03:02]転送レートテストの開始
[02:24:58]Error - TRACKING SERVO FAILURE (040901)
あら?と思って何度か計測したが結果は同じ。 全ファイルコピーしてみたが、正常だった。 相性なのだろうか。謎。 今後も要検討しないと、せっかくのバックアップが台無しになりそう。 ちなみに上記結果の、シーク、CPU利用率、インターフェースの部分は別途計測し画像加工したものである。 更についでにDVD-RAMをPIONEERのDVD-ROMドライブに入れてみたがマウントせず。w ●バックアップ考察 HDDもかなり圧迫してきて、どうにかバックアップ装置をと思っていたが、 HDD追加は金かかるし、DVDはどれが良いんだか分からないし。 そんなこんなで待ちに待ってたマルチプラスが発表されたのが4/1のエイプリルフール。 6月下旬OEM出荷されるとのことで秋葉ならコッソリ置いてそうと思い探してみたが見当たらず、 結局8月上旬になってしまった。 で、DVDメディアのコストパフォーマンス。 HDDは180GB以上じゃないと買う気がしないので、元IBM製のIC35L180AVV207-1と、今回のDVDの比較。 適当に分かりやすい数値に丸めて計算した。 速度のところはかなり曖昧なんで、信用しないで下さい。
メディア初期投資最低容量/公倍数最低コスト/公倍数実質速度/sec(Read/Write)備考
IC35L180AVV207-1\0180GB/1x\20,000/\20,00043.7MB/29.2MB読み書き可能
DVR-ABH4 & DVD-RAM94Y4F\30,0009.0GB/20x\1,200/\24,0007.8MB/1.95MB読み書き可能
DVR-ABH4 & DVD-R47PWX10G\30,0004.5GB/40x\250/\10,0007.8MB/2.6MB読み込み専用
  DVD-RAMでのバックアップはコストがかかりすぎなので考察から除外ということで。 540GBの時点で容量/コスト(6万円)が並ぶ。 HDDなら3台、DVDなら120枚。
メディア読込時間書込時間
IC35L180AVV207-13台3:305:15
DVR-ABH4 & DVD-R47PWX10G120枚19:1557:45
汎用性を考えるとDVDが良いかもしれないが、HDDでバックアップだって悪くないだろう。 と言いたい所だが、書き込み時間を見てそれもどうかと思う。 一応、4GBをDVD-Rに焼いたとき18分程だったので、まあMAX詰め込んで何だかんだで 結局25分を120回だと、約50時間になる。 MAXに調整するのは結構面倒だし、他にもコピーとか時間かかって結局表のような時間になると思われる。 自分の作業する単価を考えると、今回のDVD購入の選択も微妙な所かもしれない。 ●まとめ 以上のようなバックアップのためだけの活用方法だと、ちょいともったいない。 リアルタイムレコーディングや、DVDデッキ用のメディア作成など使い道はいろいろある。 それらについては、また次回。 #そして、あきばんぐのビラ配りの人はブロパロ立川店のコスだった。 関連リンク: IO DATA 俺コン あきばんぐ Nero CD-DVD Speed KProbe


Close

Only
000036.ブーリアン処理の精度アップに向けて 
  (2003年07月16日(水) 02:15)

Open
メタセコイア用ブーリアンプラグイン:boolean.lzh
解凍して、metasequoiaをインストールしたフォルダのPlugins\Object\の中に入れてください。
オブジェクトメニューに下記コマンドが追加されます。
・「ブーリアン」
・「形を維持して頂点を最適化」

●最適化機能を見なおし
以前、ブーリアンの副産物で「形を維持して最適化」の処理を作り、
そのままプラグインとしていたが、閉じたオブジェクト(ソリッド)で行なわないと
必要な面まで削除されてしまうことがあった。
まあ分かっていたことなので、ソリッドで実行することが前提と表記はしていたが。
不便なので、この際高速化と共に精度アップを行なった。

以前の方法だと、各点毎に、その点Aと辺を構成するもう1点Bを調べ、
この点Bを使う面の法線が、その辺ABを使う面の法線のいづれかに含まれていれば
点Bは点Aにマージ出来るとしていた。

ソリッドであれば上記条件で問題無いが、そうでない場合、辺が1面でしか使われていない部分で
マージを行なってしまい、面が消える原因となっていた。
また、マテリアルも考慮していないし、4頂点の面は無視していた。

今回は新しく下記条件を付けた。
・点Bを使う面の数が、辺ABを使う面の数より多い
・辺ABを使う面の法線と同じ法線を持つ面が、点Bを使う(Aは含まない)面に1つ以上存在する
・同一法線の面は同一マテリアルである
・点Bの角度(Bを使う面のBの角度の合計)が180度の整数倍になる、もしくは、
 辺ABと同じベクトルを持つ辺が、点Bを使う面に含まれる


●デローニー三角分割法のおさらい
点ABCの三角形があるとき、外接円の中心点をPとし、その求め方は、
3辺それぞれの中心から、各自の辺と直角に交わる線を引き、それらが交わった点になる。
3辺とも計算する必要はなく、いづれか2辺で中心点Pは求めることが出来る。
半径rは当然r=|P−A|である。
そして、実は難しい2辺の交点。
2次元なら分かるが、3次元は結局理解出来なかったので、下記方法で計算した。
まず、三角形ABCの法線Nを求め、そこから三角形A、B+N、B−Nの法線先Nabを求める。
同じく、三角形B、C+N、C−NからNbcを求める。
辺ABの中点Pab=(B−A)/2と、Nabで、
三角形Pab、Nab+N、Nab−Nを作りFabとする。
さらに辺BCの中点Pbc=(C−B)/2から、辺Pbc、Pbc+Nbcを作りLbcとする。
Fabを無限の面、Lbcを無限の直線とするとき、それらの交点がPとなる。
もうちょっと簡単に求める方法がありそうなものだが、よく分からないのでこれで。
下図は左が上面図、右が適度な視点からの図。



●4頂点面の構成条件
ブーリアン計算時、交点の存在する4頂点の面は全て3頂点の面にしている。
通常は、交点計算、分割、結線修正、最適化を行なっているが、
「4頂点」をチェックすることにより、上記処理の後に4頂点面の再構成を実行する。

3頂点の面を4頂点にする条件は以下の通り。
 @.1辺(2頂点)を共有している
 A.共有している辺と、共有していない辺が交差する
 B.法線方向が同じ
 C.マテリアルが同じ

Aについてはメタセコ自体が対応してないようなので、条件とする必要がある。
↓右上から左下への線が外に出てしまうが、可能な方向もある。↓
↓左上から右下への線が外に出てしまい、おかしな面が表示される。↓
共有されている辺の検索には、SDK付属のMQ3DLibにある、class MQObjEdgeを利用する。 先述した、辺が交差しているかの処理は依存コードを含んでしまい、纏めきれないので省略します。
//---------------------------------------------------------------------------
// 3頂点から4頂点面構成
//---------------------------------------------------------------------------
void RefreshQuad( MQObject Obj ) {                    //4頂点化
    int face_count;                                    //面数
    int Aint[4], Bint[4];                            //頂点インデックス
    MQPoint Pa[4], Pb[4];                            //頂点
    MQPoint Nml;                                    //法線
    int Alp, Blp, lp;                                //カウンタ
    int Fno, Lno, Mtr;                                //面、辺のインデックス、マテリアル
    bool *Fbl, Crs;                                    //面の使用/未使用、交差フラグ
    MQObjEdge *edge = new MQObjEdge( Obj );            //共有エッジ取得

    face_count = Obj->GetFaceCount();
    Fbl = new bool[face_count];
    for( Alp = 0; Alp < face_count; Alp ++ ) {        //面の数だけ処理を行う
        Fbl[Alp] = false;
    }
    for( Alp = 0; Alp < face_count; Alp ++ ) {        //面の数だけ処理を行う
        if( Obj->GetFacePointCount( Alp ) != 3 )  continue;
        if( Fbl[Alp] )  continue;
        Obj->GetFacePointArray( Alp, Aint );
        Mtr = Obj->GetFaceMaterial( Alp );
        for( lp = 0; lp < 3; lp ++ ) {
            Pa[lp] = Obj->GetVertex( Aint[lp] );
        }
        Nml = GetNormalB( Pa[0], Pa[1], Pa[2] );
        for( Blp = 0; Blp < 3; Blp ++ ) {
            if( edge->getPair( Alp, Blp, Fno, Lno ) ) {    //面、辺取得
                if( Obj->GetFacePointCount( Fno ) != 3 )  continue;
                if( Fbl[Fno] )  continue;
                Obj->GetFacePointArray( Fno, Bint );
                for( lp = 0; lp < 3; lp ++ ) {
                    Pb[lp] = Obj->GetVertex( Bint[lp] );
                }
                //***!注意!***依存コード利用のため、下記処理を省略しています。
                //辺(Pa[Blp], Pa[(Blp+1)%3])と、辺(Pa[(Blp+2)%3], Pb[(Lno+2)%3])が交差しているならばcontinue;
                //**********
                if( (Nml-GetNormalB( Pb[0], Pb[1], Pb[2] )).abs() > Limit )  continue;    //法線が同一でない
                if( Mtr != Obj->GetFaceMaterial( Fno ) )  continue;                        //マテリアルが同一でない
                switch( Blp ) {
                case 0:
                    Aint[3] = Aint[2];
                    Aint[2] = Aint[1];
                    Aint[1] = Bint[(Lno+2)%3];
                    break;
                case 1:
                    Aint[3] = Aint[2];
                    Aint[2] = Bint[(Lno+2)%3];
                    break;
                case 2:
                    Aint[3] = Bint[(Lno+2)%3];
                    break;
                }
                Obj->SetFaceMaterial( Obj->AddFace( 4, Aint ), Mtr );
                Fbl[Alp] = true;
                Fbl[Fno] = true;
                break;
            }
        }
    }
    for( Alp = 0; Alp < face_count; Alp ++ ) {        //面の数だけ処理を行う
        if( Fbl[Alp] )  Obj->DeleteFace( Alp );
    }
    Obj->Compact();
    delete Fbl;
    delete edge;
}
●同一法線の重なった面のマージ 互いに同一無限平面状に存在し、一部の領域が重なっている面の計算をしなければならない事がある。 これまで通り、各線がどこかの面と交差していないか調べ、その交点で分割するという方法では 交点座標が複数あったり、float型の限界で求める事が出来なかったりしておかしな形になっていた。 (2003/07/15現在のboolean.dllで形が崩れるのは、重なった面の処理か、float落ちのどちらかと思われます) 重なった面だけは別途処理する必要がある。 ぴったり重なっているならメタセコ標準機能でも対処出来る。 booleanの中では下記のように処理している。
//---------------------------------------------------------------------------
// 重なった面を削除
//---------------------------------------------------------------------------
void EqualNormalFaceDelete( MQObject Obj ) {
    int pf, pl, lp, no, xx, yy, face_index = Obj->GetFaceCount(), line_index;
    int Fint[2][4];
    bool *Del;
    MQObjEdge *edge = new MQObjEdge( Obj );
    Del = new bool[ face_index ];
    for( lp = 0; lp < face_index; lp ++ )  Del[lp] = false;

    for( lp = 0; lp < face_index; lp ++ ) {
        line_index = Obj->GetFacePointCount( lp );
        if( line_index == 2 )  line_index = 1;            //エッジは1本なので1にする
        for( no = 0; no < line_index; no ++ ) {
            if( edge->getPair( lp, no, pf, pl ) == false )  continue;
            if( Del[pf] )  continue;
            Obj->GetFacePointArray( lp, Fint[0] );        //インデックス取得
            Obj->GetFacePointArray( pf, Fint[1] );
            pl = 0;
            if( line_index == 1 )  line_index = 2;        //頂点数は2に戻す
            for( xx = 0; xx < line_index; xx ++ ) {
                for( yy = 0; yy < line_index; yy ++ ) {
                    if( Fint[0][xx] == Fint[1][yy] )  pl ++;    //同じものがあった
                }
            }
            if( pl >= line_index ) {                    //重なった面
                Del[pf] = true;
            }
        }
    }
    //重なった面を削除
    for( lp = 0; lp < face_index; lp ++ ) {
        if( Del[lp] )  Obj->DeleteFace( lp );
    }
    delete[] Del;
    delete edge;
}
但し、完全に重なった面のみで、一部重なった面には対応が現状では行えていない。 今後の課題としたい。 ●ブーリアンプラグインの未サポートおまけ機能 いづれも未完成のため、面がおかしくなるなど不具合が多数出ると思われます。 ドロップダウンの選択肢には出てきませんが、それぞれ対応する「」内の文字を入れると処理が行えます。 ・頂点複製「:」   座標0を中心としたAオブジェクトを、Bオブジェクトの頂点に加算配置します。   Aの大きさに対して、Bの頂点と頂点の間が密集してると、場合によってはエラーで落ちます。 four3.lzh ・積算「*」   座標0を中心としたAオブジェクトを、Bオブジェクトで積算します。   Aの大きさに対して、Bの頂点と頂点の間が密集してると、場合によってはエラーで落ちます。   Bを立体にして積算すると、場合によってはエラーで落ちます。   補間部分のマテリアルが割り当たっていないのは未完成だからです。お待ちください。 four4.lzh 関連リンク: メタセコイア用ブーリアンプラグイン:boolean.lzh 資料室:デローニー三角分割 資料室:ブーリアン計算の覚え書き 資料室:Metasequoiaプラグイン「ブーリアン」β版


Close

Only
000035.デローニー三角分割 
  (2003年05月31日(土) 16:11)

Open
●デローニー三角分割
三角面を分割する手段として、今までは単純に頂点で分割していたが、
デローニー三角分割という方法があることを教えてもらい、ブーリアンプラグインに実装してみた。

デローニー三角分割とは、簡素に纏めると以下の条件で面を分割する方法である。
三角形の外接円内に分割する点Pを含む三角形で、
更に点Pを含む三角形に隣接しているものと、点Pを含む三角形を削除し、
出来た多角形の各点から点Pに結線を張り、面を構成する。
図解すると以下の通り。
黄色の三角形と、それに隣接する三角形があり、
黄色の面を点Pで分割する。
隣接する三角形の外接円を調べ、円内に点Pが含まれている面は
再構成の対象となる。
点Pは赤い面と、青い面の外接円の中にあり、緑の面からは外れている。
再構成の対象になる面の各頂点から点Pに結線を結び、面を構成する。
−以上−
−ちなみに−
こちらは単純分割した場合。
実際にメタセコイアで試してみると以下の通り。
三角面に三角錐が刺さっている
単純分割デローニー三角分割
デローニー三角分割自体は2次元のもののようなので、 3次元でこれを行なうには隣り合う面の法線が同一である必要がある。 当然、単純分割より計算時間がかかる。(といってもたかが知れていると思うが) 更に、ブーリアンでは、結線方向が交差する面により固定されるため、 必ずしもデローニーの方法が有効に生きるとは限らない。 関連リンク: メタセコイア ブーリアンプラグイン デローニー三角形分割をVC++で フリーメッシュ法 三角形の外接円作図


Close

Only
000034.500万画素デジカメ、USBメモリ&MP3プレイヤー他購入 
  (2003年04月23日(水) 22:29)

Open
NereidFinecam S5で撮って、
ViewpointZoomViewを利用してみました。
プラグインを入れないと見れません。
操作方法は、左クリック:拡大  右クリック:縮小  ドラッグ:画面移動
拡大したら、3秒くらい待つと画像がさらに鮮明になります。

最近購入したものをレビュー。
カテゴリメーカー品名/型番税込値段
500万画素デジカメ京セラFinecam S5キャンペーン版\45,150PCボンバー
256MB SDカードハギワラ シスコムHPC-SD256M\13,440ZOA
USB128M Memory/MP3PlayerVertex LinkField Peas\14,698あきばお〜
USB 4Port HUB鳳祐FUH-020\2,709若松通商
●500万画素デジカメ 京セラのFinecam S5を購入。 FinePixと比較して悩んだ時もあったが、でかい、デザインが悪い、手触りが悪いので。(私的に) で、その他の店、Sofmap:\68,290(ポーチ無し、\5,000引きでこの値段) BicPkan:\63,762(ポーチ無し、13%還元考慮)、いくらなんでも違いすぎだろう。 仕様はHPのほう見てもらえば済むし、長くなるので、注目した点だけを抜粋すると以下の通り。
有効画素数500万画素(2560x1920)
ズーム光学3倍×デジタル4倍
動画15fps 320×240(30秒)、160×120(120秒)
明るさF2.8〜4.8(ISO100〜400)
接写は12cmで申し訳程度、セピアとか白黒も撮れるがどうでもいいし。 むしろ連写がないのが残念かも。 そして期間過ぎてましたが、キャンペーン版だったのでキャリアポーチ付き。 良い点、悪い点無理やり捻り出すと以下の通り。
良い点
ポケットサイズ。といってもポーチがあるんでベルトに付けてますが。
やっぱり高解像度。2560x1920のサイズあれば縮小して随分綺麗になりますわ。
外部ドライブになる。っていうか最近はどれもそうか。
悪い点
PCに繋げてるのに液晶が付く。しかも「PCモード」とか出てるし。消せますが、最初からいらんだろうこんなの。
結構手ブレるかも。暗いところをフラッシュ無しだと感光度を上げるためにシャッター速度が遅くなる(?)んで。当たり前かも。
フラッシュ使わんのにフラッシュレンズが飛び出る。これはスイッチにしてほしいですね。
十字キーが押しにくい。どうしょもないね。
電池消耗が早い。ってこれも最近の性能だとしかたないっぽい。
マイクが後向いてる。撮影用ってより、リポート用か?
悪い点ってなかなか載ってないから有用な情報だと思うんですが、いかがでしょう。 結構どうでもいい所が多いんで、この程度で済んでるって意味でもあるわけで。 そして花見行ったときに撮った桜林。(2560x1920、1.83MB) ●256MB SDカード 送速度が10MB/secなのが最近の主流っぽい。 2MB/sec程度の物もまだ多いようなので、買うときには要注意かもしれない。 あきばお〜とかだと速度が明確に書かれてなかったので、ちゃんと書いてあったZOAで購入。 その場でデジカメに入れました、と。 デジカメに付属してた16MBのSDカードどうしますかね。 ●USB128M Memory/MP3Player 「3in1」を謳うUSBメモリ。3つの機能は以下の通り。 ・USB128MBメモリ ・MP3プレイヤー ・ボイスレコーダー まず、128MBは少ない。これしかないから仕方ないか。 有償で交換してくれ、とは要望送りましたが、聞き流されちゃいますかね。 256MBが直ぐに発売されたらガッカリかも。 MP3プレイヤーとしては便利かも。 メモリ内のmp3を勝手にリストアップして再生してくれる。 簡易ながらイコライザー機能もある。 単4電池で12時間再生らしい。 ただ、やっぱり入る曲数が少ない・・・。 ボイスレコーダーは、メニューから選んでメモリ内に保存される。 まあ正直どうでもいいが。 写真を見ての通り、3.5インチFDと同じような大きさなんで、 キーホルダーとしては少々大きいかと。 しかもモロそうなので、金属類と一緒にポケットに入れるのは、やめたほうがよさそう。 ●USB 4Port HUB いちいちPCの後に取り付けるのは面倒になってきたので、とりあえず1つ購入。 USB2.0、1.1兼用。なんでも良いんで安いのということで。 もうちょっと安いのも有るらしいですが、見つからなかったので。 PC2台で使えるほうが良かったかな。でもクロスで使えるのかな。 そろそろコンセントが足りなく・・ ※次はプリンターが欲しいなあ。 関連リンク: ・PCボンバーあきばお〜ZOA


Close

Only
000033.ブーリアン計算の覚え書き 
  (2003年02月18日(火) 21:00)

Open
●ブーリアン計算の覚え書き
ブーリアンプラグインを作り出して、教えてもらったこと、学んだことなど、
忘れないうちに資料にしておきます。
2003/07/15現在最新版plugin>(boolean.lzh●三次元空間における、面と線の交点の求め方
公式を教えてくれたkaoru氏、kao氏には感謝。
La(x,y,z)からLb(x,y,z)への直線
P(x,y,z)を含む、法線N(x,y,z)の無限平面
交点S(x,y,z)

※上図で無限平面は、一部の矩形だけ描く
左記において、平面と線の交点S(x,y,z)は以下のように導き出す。

面について、
 S・N = d
 P・N = d
 ∴S・N = P・N

線について、
 S = t(Lb−La)+La   (式1)

交点Sは、
 (t(Lb−La)+La)・N = P・N
 t(Lb−La)・N+La・N = P・N
 t(Lb−La)・N = P・N−La・N
 t = (P−La)・N/(Lb−La)・N
 tについて求まるので、式1に代入する。
●交点による面の分割手順(Type.0) (boolean0.lzh) 「Metasequoiaプラグイン「ブーリアン」β版」を見て頂ければいろいろ書いてあります。 交点の求め方に無駄があるのはともかくとしても、全ての線で、全ての面を交差していないかを検索し、 交差していたら直ちに面を分割して検索しなおす、実に単純な方法のため、 分割線が多く、面が増え、精度も低く、処理速度も低速でした。 ●交点による面の分割手順(Type.1) (boolean1.lzh) Type.1から、まず、交点の求め方を変更。 そしてなるべく無駄な面が出来ないよう、以下の手順で面を分割していきます。 精度、速度が向上しましたが、それでもまだ速度はかなり遅いと言えます。



左図のように、面に面が刺さるときの処理は以下のようになる。

01.線ABに何か交わってないか検索→無い
02.線BCで検索→面DEFと交わっている
03.線BCと面DEFの交点をPとする
04.もう1点で交わっているはずなので、さらに検索
05.線CAで検索→面DEFと交わっている
06.面ABCの中から検索されたので、面ABCは面DEFに刺さっていると判断し、以下の処理
07.線CAと面DEFの交点をQとする
08.面DEFを点Pで分割→面PDE、面PEF、面PFDを生成
09.面DEFを削除
10.点Qが面PDE、面PEF、面PFDのどこにあるか検索→面PFD
11.面PFDを点Qで分割→面QPF、面QFD、面QDPを生成
12.面PFDを削除
13.点P、点Qと、面DEFと交差する線の共通点Cで、面PQCを生成
14.点P、点Qと、最初に検索された線BCから、面DEFと交差する線の共通でない点Bで、面PQBを生成
15.点Qと、面DEFと交差しない線ABで、面QABを生成
16.面ABCを削除



左図のように、面と面交差するときの処理は以下のようになる。

01.線ABに何か交わってないか検索→無い
02.線BCで検索→無い
03.線CAで検索→面DEFと交わっている
04.線CAと面DEFの交点をPとする
05.もう1点で交わっているはずなので、さらに検索
06.面ABC3つの線で検索完了→面ABCには無い
07.線DEで検索→無い
08.線EFで検索→面ABCと交わっている
09.面DEFの中から検索されたので、面ABCは面DEFと交差していると判断し、以下の処理
10.線EFと面ABCの交点をQとする
11.面DEFを線PQで分割
12.面ABCとの交線EFの各点と線PQで、面PQE、面PQFを生成
13.点Qと、残りの点Dと、交線EFの各点で、面QDE、面QDFを生成
14.面DEFを削除
15.面ABCを線PQで分割
16.面DEFとの交線CAの各点と線PQで、面PQC、面PQAを生成
17.点Pと、残りの点Bと、交線CAの各点で、面PBC、面PBAを生成
18.面ABCを削除
●交点による面の分割手順(Type.2) (boolean2.lzh) ※2003/05/11 追加 交点計算の処理だけは変わらないが、それ以外の計算を今までとは大幅に変更。 ブーリアン(+)では以下の処理を行なっている。  01.カレントとその次のオブジェクトのコピーを取り、カレントをコピーしたオブジェクトに合わせる  02.三角分割(ABCDで構成された面をABC、CDAに分解)  03.各面の交点を算出(まだ分割しない)  04.各面を一気に交点で分割  05.分割構成適正化  06.オブジェクトをマージして近い点を結合  07.形を維持して頂点を最適化 ●01.カレントとその次のオブジェクトのコピーを取り、カレントをコピーしたオブジェクトに合わせる 説明する必要は無いだろう。単純にコピーを取るだけ。これが処理結果となる。 ●02.三角分割(ABCDで構成された面をABC、CDAに分解) 一応程度説明しておくと、4頂点の面だと交点が特定出来ないため3頂点分割している。 以下の図を参考にして欲しい。 図1は普通の4頂点の面。4頂点が同一面にあるなら問題無いのだが、図2ではハンドルの付いた頂点だけY軸にずれている。 こういう面の場合交点は算出できない。図3、図4の分割パターンが考えられるからだ。 ●03.各面の交点を算出(まだ分割しない) ここの処理では各面毎に交点だけを計算してメモリに蓄えている。 面と面が交差するとき、必ず2点の交点が算出される。 交点を求めた順番(単にインデックス)も記憶しておく。(※05で重要) 今まではその場で分割して、結果として余計な計算が増えていたため遅かった。 ただし今回は多面のオブジェクトではかなりのメモリを消費する。 ●04.各面を一気に交点で分割 03で算出した交点で各面を分解する。 後から計算することにより余計な頂点は増えない。 ●05.分割構成適正化 04で分割したままだと、分割線が正しく切れないので補正する。
三角形ABCがあり、それに三角推が刺さってその交点が三角形DEFだとする。
これをDからFまで順番通りに分割すると、下のようになる。
順番通り分割した状態。
最初にABCをDで分割するためABD、BCD、CADが生成される。
次にEで分割。DBE、BCE、CDEが生成され、
最後にFで分割。ADF、DCF、CAFが生成される。
EF間とDC間で分割線がおかしな方向を向いている。
このままマージすると正しい図形にはならない。
分割線方向を正さなければならない。
理想形は左図のようになるが、見た目のように簡単には行かない。
普通、面を分割するときは、その線によって左右にわかれる面の比率が
50%:50%に近くなるように分割する。(流れが関わる時はこの限りではないが)
線が最短になるように分割する方法もあるようだが、いづれもNG。成り立たない。
03で交点を計算したとき、計算した順番も記憶してある。
1回の計算で交点は2点求まり、この2点を共有する面が存在しなければならない。
今回はEとFが同じインデックスを持っているのに、それらを使う面が存在しない。

そこで、点EF間に分割線が有るかどうかチェックし、その線を使う面を全て削除する。
このとき、削除した面の辺(エッジ)を記憶しておく。
更に各頂点の角度も記憶しておく。(※後の計算で重要)
まずDECが削除され、エッジDE、EC、CDが記憶される。
EF間にあるDCは計算対象外として記憶される。
DCFについても同じ処理を行い、エッジDE、EC、CF、FDが摘出され、
CDが対象外となり、問題のEFがエッジとして追加される。
まずEFと、EかFを使うエッジとで面を構成すると、EFDが生成され、
これに使われたエッジEF、FE、EDは使用済みとされる。
残るエッジで同様処理を行なうと、ECとCFでECFが生成される。
エッジが無くなるまでこの処理を続けて分割構成が適正化される。
さて、上記の通りで概ね分割線方向が適正化されるが、これだけではうまく出来ない場合がある。 以下のように、今度は四角DEFGで分割する。 ここではDEFGと記したが、点の構成なんて無限にあるし、計算の順番も保証されるものではないので、 以下のように分割されてしまうこともある。 DG間の分割線が正しくないので、先に書いた方法で、邪魔になる線を含んだ面を削除すると、 ADE、AEF、AFGが削除され、エッジAD、DE、ED、DG、GAとDGが摘出される。 そこで、計算される順番は保証される物ではないということで、以下の問題が出てくる。 ・問題点1 エッジDG、DEで面DEGを生成すると、点Fが中に入ってしまい、おかしな面になる。 DEGを構成するには、面削除時に計算された「各点の角度」の容量が、点E、Gに置いてオーバーしている。 この時点でDEGはありえない。 ・問題点2 エッジEF、FGで面を構成することになった場合、EFGになるが、見ての通りあり得ない。 しかも「各点の角度」の容量は超えていない。 上記の事から、面を構成する時には以下の例外処理も考慮する必要がある。 ・関係する点が重なっていないかチェックする。>問題点1を回避 ・共有する点の角度が180度をこえている場合は後回しにする。(っていうか処理しない)>問題点2回避 以上で下図のような正しい面が構成される。 ●06.オブジェクトをマージして近い点を結合 単純にマージ(合成)して、接近する頂点をくっつける処理をしている。 距離は「0.01」。 ●07.形を維持して頂点を最適化 Metasequoiaプラグイン「ブーリアン」β版の「5.形を維持して頂点を最適化」で説明している通り。 今後は、可能ならば三角形を四角形にする処理も含めたい。
ブーリアン(−)も(+)と似たような処理を行なっている。 違う部分のみ太文字で表示すると、02、07、08の処理が追加されている。  01.カレントとその次のオブジェクトのコピーを取り、カレントをコピーしたオブジェクトに合わせる  02.カレントの次のオブジェクトの面を全部反転する  03.三角分割(ABCDで構成された面をABC、CDAに分解)  04.各面の交点を算出(まだ分割しない)  05.各面を一気に交点で分割  06.分割構成適正化  07.カレントの次のオブジェクトの中にある面を削除する  08.裏を向いた不要な面を削除する  09.オブジェクトをマージして近い点を結合  10.形を維持して頂点を最適化 ●02.カレントの次のオブジェクトの面を全部反転する カレントのオブジェクトはその次のオブジェクトで削られ、その断面は削ったオブジェクトのマテリアルになる。 断面は表裏が逆になるので、予め反転しておく。 ●07.カレントの次のオブジェクトの中にある面を削除する 具体的に削り取る処理を行なう。 少々説明しにくいが、以下の図は青い箱から半透明の緑の箱を削るイメージである。 緑の箱は面が反転しているが、閉じたオブジェクトとして、その中に含まれる青い部分を削除している。 判断の方法としては、青面全てで法線方向に最初にぶつかる面が緑面かどうか、更に法線方向差が90度未満なら それは不要な面と判断し、削除している。 ●08.裏を向いた不要な面を削除する 全ての緑面に対して、法線と逆方向に青又は緑の面が存在するかどうか。 存在しなければそれは不要な面と判断し、削除している。
この他に以下のようなプラグインが含まれていたが、05/23、処理を一元化出来たため削除しました。
ブーリアン(交点分割)カレントのオブジェクトとその次のオブジェクトの交点でそれぞれを分割する
形を維持して最適化Metasequoiaプラグイン「ブーリアン」β版の「5.形を維持して頂点を最適化」の通り
ブーリアン(中抜き)カレントオブジェクトのが閉じたオブジェクトだとして、内部にある不要な面を削除する

適度に面倒な図形で処理してみました。
↓処理前.面倒臭そうな図形を処理してみます↓ブーリアン(+)処理後
↓ブーリアン(+)処理後、緑オブジェの後を削除して中を覗いた↓ブーリアン(−)処理後
関連リンク: 資料室 35ページ:デローニー三角分割 3D空間の表示、表現、演算方法について 2003/07/15現在最新版plugin>(boolean.lzh


Close

Only
000032.137G以上のHDDにWindows2000をインストしたかった 
  (2002年11月03日(日) 17:11)

Open
Deskstar 180GXP IC35L180AVV207-1を買ってきました。
IDEの180GのHDDです。
USER's SIDEで、\34,680(税込\36,414)でした。
Deskstar 180GXP[ IC35LxxxAVV207 (ATAインタフェース) ]
最大73.0メガビット/平方ミリメートル(47.1ギガビット/平方インチ)の面記録密度
最大180ギガバイトの大容量
流体軸受けモーターの採用による静音設計
最大8メガバイトのバッファーサイズ
温度センサーの導入による信頼性の向上
100メガバイト/秒のインタフェース転送速度(Ultra ATA/100)
アルミニウム製ディスクを採用
ヘッドロード・アンロード機構を採用
S.M.A.R.T.機能による事前故障予測
7,200rpmのディスク回転速度
●まず128G認識が謎だった  とりあえずTigerMPXに直接刺して起動。128G。  お?認識されていらっしゃならい?  でもまあ初期化。やっぱり128G。  どうもおかしいので、Windows98の起動ディスクから起動してFDISK。  4.5Gと表示された。  64Gの壁で認識されない、または表示がおかしくなるのは知っている。  ので、差分はあてたFDISKなはずだったが、しかたないので強行。  そしたら180Gで認識して、無事FAT32でFORMATもできました。 ●そして180Gと認識されたが  ようやく180Gで認識したところで、次にwindows2000Proのインストール。  NTFSにコンバートしてインストール。無事起動。  以上。  …というわけには行かなかった。  容量が不足したために買ったHDDだし、あふれたデータをどんどん詰め込んで  およそ128Gくらい書き込んだところで、突然リセットがかかった。  イヤ〜な予感がしたが、案の定起動せず。  しかたなく別PCにつけてデータだけでも救おうと。  「ドライブの構造が壊れています」系のエラーがでて、どうやっても見れず。  アクセス音も「ジジジジジ」とか「カコン、カコン」、絶対やばい。  chkdskをかけてみる。windowsの極一部が残ってほとんどからっぽ。  このとき、完全に死んでしまったのだろう。 ●偶然だろうと思った  死んでしまった理由を考えた。   1.初期不良か、相性問題。   2.HDを9台付けているため、電源が不足してリセット。それが原因で壊れた。   3.FAT32からNTFSに変換したため、なんらかの不具合が起きた。  音からして1だが、最初はそうでもなかった。  念のためもう一回初期化。音は正常。たぶん壊れてない。  というか、128Gというらへんから既に壁の問題とは考えていたが。  あえて、電源はどうだろう。リセットがかかった理由として、一番高いと思った。  AntecTruePower550USER's SIDEで、\18,980(税込\19,929)で購入。  電源取り替えて、FAT32で初期化し、NTFSにコンバートしてインストール。  消したり書いたりを繰り返したが、問題なし。  そして、128Gほど書き込んだところで「パラメータが無効です」。  また再起動せず。他PCでも読み込めず。 ●Windows2000では無理なことを知ったが  これは別の問題だと思い、Google等で調べてみる。  HDDの壁について詳しく書いてあるHPを発見。  どうやら、Windows2000はマザボの設定を無視するため128G〜137Gの限界があるらしい。  とのことだが、本当とは限らない。  価格COMの掲示板でも苦労してる人も居るようだが成功例もあるらしい。  一応、48Bit Big Driveに対応してなければならないことは本当らしい。  TigerMPXは、最新BIOSでこれに対応している。(当然最新BIOS導入済み  が、そのBIOSの設定を無視するというWindows2000の仕様ため、Big Driveには対応してないということであるらしい。  ついでにHDDのDrive Fitness Testも行なってみた。正常だった。 ●実験君  えらいハメになった。人柱そのものじゃん。  128Gじゃ納得できない。とりあえずいろいろやってみる。  ・実験その1 IDE関連ドライバを最新に   一部のドライバがバージョンアップされていた。TYANのページにある最新ドライバを入れてみる。   FAT32で初期化してNTFSコンバートでインストール。   128Gこえて、しばらくしたらリセットがかかって死亡。  ・実験その2 起動ドライブではなく、データドライブとしてセカンダリに付けてみる   128Gこえて、しばらくしたらリセットがかかって死亡。  ・実験その3 FAT32でインスト   今まではNTFSにコンバートしてたが、これをFAT32のまま使用。   128Gこえた瞬間に「ファイル名が無効」っぽいエラーがでてアクセス不能。  ・実験その4 パーティションで90G×2にしてみる   Windows2000から初期化しようと思ったが、128Gと認識されていて、   90Gで区切ると残りは38Gになってしまうため、起動ディスクからFAT32で初期化。   2ドライブ目の38Gこえて、しばらくしたらリセットがかかって死亡。   起動ドライブは完全に見えなくなったが、2ドライブ目の38Gくらいまでは正常に見れた。   128Gをこえたら0に戻るのだろうか。  ・実験その5 RAIDカードを使ってみる   というか、これは動いて当然だと思った。   現にEscaladeでは560Gの1ドライブで動作している。   試したRAIDCardはABITのHotRod100。ドライバはここにあるものを使用。   HotRod100の詳細情報はHPには見当たらなかったが、どうやらRAIDカードなだけでIDEカードではないらしい。   Arrayがプライマリにしようとセカンダリだろうとマスターだろうとスレイブにしても作成できず。   とりあえずドライバを入れてインストを開始してみたが、HDを選べず。   なぜかそのまま青画面。まあ元々青いけど。   2つ無いので終了。 ●ここまでか  というわけで、TigerMPX直付けでは137GオーバーのHDDにWindows2000をインストールは無理らしい。  データドライブならOKとか、パーティション分ければOKみたいな記事も見たがダメだった。  IntelのチップセットならIntel Application Accelerator(IAA)というのがあるらしい。  TigerMPXはAMD-760 MPX Chipsetってやつですか。対象外ということで。 ▽▽▽11/07追加▽▽▽ ●IDEカード(Ultra133Tx2)登場です  FaithPromiseUltra133Tx2を、\4,270(\4,483)で購入。  うちはWindows2000Proなんで関係ないですが、XPだと不具合があるようです。  とりあえず刺して最新BIOSとDriverをゲットしてきた。  TigerMPXのBIOSアップデートはえらい苦労したけど、これはそのまんまWin98起動ディスクからいけました。  で、180Gで初期化しWindows2000Proをインストール(何回目だ?)。適当なデータをエラーが出るまでコピー。  「ディスクの空き容量が足りません」やっと正常なエラーが出た。  満タンの状態で、再起動、スキャンディスク、最適化全部正常に終了。  よかった。これで安心して使える。  以上。  …で、終わらせるものか。 Ultra133Tx2の性能はどうなのよ  最適化の時とかに思ったんですが、なんか遅い気がするんですよ。  Ultra133Tx2に刺して初期化〜OSインストしたドライブを、マザボ直付にすると起動するんだろうな?  という素朴な疑問もあったので試してみる。  BIOSでBOOT順を間違えてて、Escaladeの方が起動してしまったが、BIOSでBOOT順設定をかえてやれば普通に起動。  そして、速度を比較してみたら以下の通りですよ。
Deskstar 180GXP
Ultra133Tx2TigerMPX直付
 Write、RandomWriteが1/3の速度。  いくらなんでもそんなに落ちるのかなぁ。  他社メーカーでの事例を発見したんですが、速度は変わらないとのこと。  メーカーによってこういうところで差が出るのは時々ある話。  SeagateとIBMのHDDでは、ストライピングとかRAIDにすると、IBMの方が1.5倍くらい早くなるようです。  しかしこれは納得できない。調査する必要がある。  あと、何気にDirectDrawが59→55に減ってるんですが、これ何故かHDDスワップ(?)するんですよ。  59〜60で順調と思ったら、スワップ(?)でガリガリッっと遅くなって52〜55にダウン。  間を空けたり、再起動したり、余計なウィンドウ閉じたり、むしろ起動したりして  2、30回くらいやってみたんですが、何度やってもHDDにアクセスして処理落ち。  原因解明はとりあえず後日調査してみようかと。  ついでに、Escalade7850のほうも、システムドライブと、データドライブで比較。
Escalade7850
システムドライブデータドライブ
 Readが微妙にデータとして使ったほうが早いですね。  HDBenchの結果もようやく6万を超えました。 ▽▽▽12/15追加▽▽▽ ●前回までの問題  ・問題1 「Writeが1/3の速度」    デフラグやってみたり、数ギガ埋めてからやってみたりしたけど変わらず。    検索してみたが、特にそれらしい情報無し。  ・問題2 「なんかのタイミングでHDDアクセスし負荷がかかる」    普通にインターネット巡回とかしてても、時々ガリガリッと音がして、    マウスカーソルすらコマ落ちするほど処理落ちします。    検索してみたが、やっぱり情報無し。  いろいろ作業があって、手付かずでした。  先月、ぱすた〜氏から、それらしい情報を頂きました。(thx!)  http://japan.support.hp.com/support/setup/46255.html  http://support.microsoft.com/default.aspx?scid=kb;[LN];JP305098  Windows2000におけるATAPIディスクドライブの、48ビットLBAのサポートに関してです。  上の記事ではSP3かららしいんですが、Microsoft曰くSP2からと記述されてますね。  なにしろSP3入れてあるんで、早速レジストリを変更。  スタートメニューから「ファイルを指定して実行」で、「Regedt」を起動後、下記値を追加する。
位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Atapi\Parameters
値の名前EnableBigLba
データ型REG_DWORD
値のデータ0x1
 又は、レジストリ値追加用ファイルを右に用意しますんで、DL後拡張子を.regに変換してダブルクリックして下さい。>biglba.bin
 いづれの方法も自己責任で。
 特にregファイルなんかは、無闇に実行せず、一度自分の目で確かめてから実行することを習慣付けるようにしたほうが良いです。
 で書き換えてみたのですが、HDは既に140G使用中で、退避する場所が無い。  まさかCD約250枚も焼きたくないし、DVD買うにも+VR(参照前編)(参照後編)とか出てるし、  買い時ではないと判断。  面倒臭いのでIC35L180AVV207-1をもう1つ買って来ました。イタタ・・・
メーカー型番値段
IBMDeskstar 180GXP IC35L180AVV207-1T-ZONE DIY\33,480(\35,154)
  私「IBMの180GのHD下さい。」  店員「はい。サービスパックは当たっていますか?」   私(心の中で)(いきなりサービスパックとはなんだよ。OSとかマザボが何か聞かないの?)   私「Windows2000でSP3をあてています。」  店員「はい。ではレジへどうぞ。」   私(心の中で)(あれ?レジストリも変えないと大変なことになるよ?)    と、思いつつも、レジのお姉さんに聞いても解る訳ないし、  走る必要があるほど急いでたので、そのまま購入。  聞いてくれただけマシとしましょう。以前の店では聞かれなかったので。  そしてUltra133Tx2に繋げて、丸ごとバックアップ。  ソフトとかは使わずに、そのままコピー。  一部のファイルがコピー出来なかったり、Outlookとかの機密情報がコピー出来なかったりするので  よくわからん人は、なんかしらのソフト使ったほうが良いかもね。  で、HDをマザボ直付けにして起動。  適当に動画ファイルをコピーなりして動作してるっぽい。  ついでにいろいろ速度の計測。
旧HDをシステムで起動
8割埋めた状態
旧HDをデータとして
8割埋めた状態
新HDをデータとして
からっぽの状態
新HDをデータとして
5割埋めた状態
新HDにOSインスト直後でシステム起動
ほぼからっぽの状態
 何度も計測して大体こんな数値ですが、結構ばらつきが有りますので参考値ということで。   ・システムいれて起動すると少し遅くなる   ・埋まってくると遅くなる  そりゃそうだということで。まあ、そういう数値になってない所もありますが。  ちなみに、レジストリ変更による速度の差は無いようで。(気づかない程度かと)  あと、ディスクの初期化方法は、旧HDはFAT32からのNTFSにコンバート、  新HDはレジストリ対応後にWindows上でフォーマットしてます。  サイズも微妙に違い、旧が185,282,621,440、新が185,266,171,904と新しいほうは僅かに小さい。  旧HDの中身をそのまま新HDに移行したほうが良さそうではあるが、  既に時遅く、新HDも埋まってしまったので、  速度差と安全性が気になるところだが、またの機会に。 ●結論としてどうなのよ  ちゃんとSP3の改修点を見てればすぐにわかったのかもしれないけど、  最近出たばかりで、BigDrive関連の記事は当時どこにも無く、  わざわざOFFにしてあるような機能だし、気づきませんでした。  というわけで、80GのHDDを使うほうが安全確実かと。  安全を取ったつもりのUltra133Tx2が使い物にならかったのはちょっと意外でした。  FastTrackもどこかおかしい感じだし、Promiseから3wareに乗り換えようかなと。    #バックアップ取りきれないんで、DVD欲しいです。どれにしようかな。 関連リンク: hpのサポートのWin2kSP3に関する情報 MicrosoftのBigLBA対応方法のページ Maxtor、ATA HDDの「137GBの壁」を越える「Big Drive」技術をサポート 137Gbytes超IDEディスクの正しい使い方 IDE ディスク容量の壁について 160GB HDDを使う


Close

Only
000031.新ストレージPC作成 
  (2002年09月16日(月) 20:30)

Open
HDDが飛んで悲しい思いをしたので、Raid5でちゃんと組んでみようと思いました。
Xeonでも買おうかと思いましたが、低価格高パフォーマンスのAthlonMPで。
メーカー型番値段(税込等価格)備考
TYANTiger-MPX 760MPX S2466N-4MT-ZONE DIY\32,800(\34,440)Athlon Dualなマザボ T-ZONE以外では売り切れだった
TranscendTS64MDR72V6F5 DDR/512M REG.(?)T-ZONE DIY\24,000(単\25,200 計\50,400)相性保証のためT-ZONEで
AMDAthlonMP 2100+User's Side\23,500(単,\24,675 計\49,350)XP改造は難易度高いとのことでMP
3wareEscalade7850COM/1\71,500(\75,070)64bitPCI Raidカード
IBMIC35L080AVVA07-0(Deskstar 120GXP)User's Side\10,580(単\11,109 計\44,436)既に3つあったので4つ購入
IBMIC35L080AVVA07-0(Deskstar 120GXP)ビックピーカン\11,800(\11,210)3+4=7で、1つ足りないので購入(ぉ
Plat'HomeATX-550Plat'Home\8,800(\9,240)CS-588Pro完全互換
ENERMAXEG465P-VE-SYPlat'Home\12,800(\13,440)430W電源
owltech109R0812H424Plat'Home\2,000(\2,100)普通の8cmFAN
owltech109P1212L403Plat'Home\3,480(\3,654)普通の12cmFAN
User's SideCS-5xx Optional Drivebay StandardUser's Side(不明)\4,980(\5,229)HDDを5つ付けられるマウンタ
User's SideCS-5xx Optional Drivebay New Edition L-AngleUser's Side(不明)\1,980(\2,079)ケースの隙間にHDDを付けるためのアングル
User's SideCS-5xx Optional Drivebay HDD用ドライブベイUser's Side(不明)\980(\1,029)HDD用のベイ(アングルと組み合わせる)
MSIG4Ti4400-VTD俺コン\31,800(\33,390)GeForce4 Ti4400 キャプチャ機能付き
AOPENGF4Ti4200-DVC128俺コン\20,800(\21,840)GeForce4 Ti4200 キャプチャ機能付き
CreativeSOUND BLASTER PCI 4.1 DIGITAL(Balk)クレバリー\2,680(\2,814)安物音源
JustyJKB-109Bクレバリー\1,000(\1,050)定番キーボードのB(?)。なんか変
不明10kΩ5pin集合抵抗山長通商\160(\168)PCには関係ないけど改修のため
なおりました。というか延長ケーブル改造もこの抵抗が必要のようです。
\344,880(\389,079)
●考察  あんまり低価格じゃない・・・  まあ、EscaladeとHDD買ったんで、それが一番の原因。  8機付けて560GBになりました。  そして、表見て気づいたかもしれませんが、痛かったのは相性問題のためAGPを2つ買ったことでしょう。  相性問題については後述。 ●値段  マザボはTigerMPXと決めてましたが、T-ZONE以外に売ってるところが見当たらなく、相性も怖いのでまとめて購入。  ※2003/02/08追記   >ちゃんとバグ無し版。(参考1)(参考2)  CPUは意外と売り切れの店が多く、売ってる中で安かったUser's Sideで購入。  今週のメインイベント、Escalade7850。値段差が激しく、\76,500〜8万円台も珍しくありませんでした。  その中では妙に安かったCOM/1で購入。でもCOM/1ではHDDが高価。  纏めてEscalade7850とIC35L080AVVA07を4つ買うから安くしてと言ってみたが、  \10,700が\10,666にしかならなかったので、HDDは当日見つけた最安値のUser's Sideで購入。  ケースは人気?のCS-588Pro完全互換(っていうか同じなのに名前が違う?)ATX-550を。  値段は考えずENERMAXの430W電源とFANもPlat'Homeで購入。T-ZONEよりかは安値。  この時あまり考えてなかったが、HDDを8つも付けると起動時、A(アンペア)が必要になる。  この電源は起動時は80A行くので、比較的大きい。が、余裕ではないらしい。  実際にはどの程度必要なのかは不明。  あと、ベイが少ないので、拡張キットをUser's Sideで。値段忘れました。HPにも書いてないし。  金具だけにしてはちと高価な気もするが、便利さ考えると買いですな。  HDD8機、DVDドライブ1機つけて、残るは3.5インチベイ1個と5インチベイ1個。  MobileRackでもつけようかしら。  で、問題のAGP。後述するんでそっち参照。  でもまあ、安い時代になりましたね。  あとは何でもいいから音源と、キーボード。  キーボードですが、JustyのJKB-109B、キーの押した感覚が昔(JKB-109)と違うんですよ。  昔より、バネが若干強くなっててギュッ、ギュッっとしなる感じっていうか。  レスポンスいまいちです。  個体差かと思い、また秋葉原へ行き、同じのをいろいろ触ってみましたが同じでした。  BってのはBADなのかなぁと。昔のJKB-109は見当たらないし。  まあ、切り替え機に通したんで昔の使ってますが。 ●組み立て  AGP相性検証のためにいろいろやってたんで時間食ってしまいました。  EscaladeとHDD8機をミドルケースに入れているため、ケーブルとか結構すごいことになってます。  うむ、デジカメ欲しいと思った。  で、BIOSアップデート、FDからどうしても出来なかったので、FATなHDDにBIOS入れてFDで起動。  これでかなり時間を食ってしまった。FATなHDD無い場合どうやるんだろう。  そして、ケースのHDDアクセスLEDをEscaladeに。なぜかつかない。とりあえず放置。 ●相性問題  最初に、唯一Ti4400クラスでキャプチャ付きのMSIのG4Ti4400-VTDを買ったのですが、  Tiger-MPXと相性悪く、ノイズが乗りすぎ。  biosアップデート/設定、OS/ドライバ入れなおし、ケーブル交換等々やってみましたが解消されず。  そして解消されるとは限らなかったけど、もうひとつGF4Ti4200-DVC128を買ったわけです。  こちらは特に問題ありませんでした。  で、G4Ti4400-VTDは売却。1週間で約\13,000引きで。ナムー。  そして、GF4Ti4200-DVC128ですが、DVI端子のほうからは1600x1200までしか出力出来ないのが仕様。  これはDVI信号規格の限界らしい。  しかしながら普通にVGA変換コネクタ使ってVGAディスプレイに映せば問題なく2048x1536で表示できる。  画面のプロパティ>設定タブ>詳細>モニタタブ>「このモニタでは表示できないモードを隠す」  のチェックを外しておく必要がある。   ●インストール  貰ったDVDドライブが、CDブート出来ないので、一時的に別PCのを借りてWindows2000 Proをインストール。  HDDが不調のため、再インストール戦記(2)は中止の方向で。  というか、また不良クラスタですよ。  これはたぶんFastTrack100に問題があると考えたほうがよさげ。  DivX5とかも入れようか考えたのだけど、Gatorがウザそうなんで後回し。  一応、Gator対策も記述しておきます。
Gator削除方法(無保証)
1.タスクマネージャ起動。
  GMT.exe、CMESys.exeを切る。

2.C:\Program Files\Common Files\ にある、CMEIIとGMTフォルダを削除。

3.スタートメニューとかのショートカットも削除。

4.窓の手を使い、自動実行からCMESys.exeを削除。

5.レジストリエディッタを使って、Gatorで検索。
  その類は削除。
関連リンク:訴えられる始末
        削除用ソフト
 ・OS、ドライバ関連インストール
BIOS Updateftp://ftp.tyan.com/bios/flash/phlash16.zip
ftp://ftp.tyan.com/bios/760mpx/2466v403.exe
最新BIOS。
AMD Bridge Driver
AMD AGP Driver
マザボ用のドライバ。付属CDからインストール。
Windows2000 Pro SP3http://download.microsoft.com/download/win2000platform/SP/SP3/NT5/JA/W2Ksp3.exe
サービスパック3の日本語版。3ヶ月遅れのリリース。
Compatibility-Mode Technologyhttp://support.microsoft.com/default.aspx?scid=kb;EN-US;q279792
コンパチブルモードを利用可能に。
ファイル名を指定して実行で「regsvr32 %systemroot%\apppatch\slayerui.dll」を実行しとけってことです。
これにより、一部アプリ(Terragenの一部のPluginとか)がWindows2000でも利用可能になります。
InternetExplorer6http://download.microsoft.com/download/IE60/fnlrtw/ie6/W98NT42KMe/JA/ie6setup.exe
相変わらずセキュリティホールが開きっぱなし。
インターネットオプション>セキュリティ>レベルのカスタマイズ>スクリプトによる貼り付け処理>無効にする
参照:http://java-house.jp/~takagi/security/misc/jscript-clipboard/test.html
DirectX8.1jhttp://download.microsoft.com/download/DirectX/dx/8.1b/NT5/JA/DX81NTjpn.exe
nViewとかの機能もサポートされてるらしい。とりあえず最新版に。
NT系と98系では違うので注意。
SoundBraster PCI Digital Driver
CDから。
CreativeのHPにはドライバはありません。
ちゃんとサポートしてほしいものですな。
AOPEN GF4Ti4200 Driverftp://ftp.aopen.co.jp/pub/driver/vga/unidriver/WinXp2k_2942.exe
ftp://ftp.aopen.co.jp/pub/driver/vga/mx400-a/WinWDM_111-2002_0508.exe
ftp://ftp.aopen.co.jp/pub/driver/vga/unidriver/MMUtil_2002_0508.exe
ドライバ関連とツール関連。
サーバー重過ぎ。ちゃんと管理して欲しいものですな。
nVidia Driverhttp://www.nvidia.com/view.asp?IO=winxp-2k_30.82
AGPドライバ、こっちだけでいいかも。
CPD-G500
LG_Monitor Driver
http://www.sony.jp/products/Consumer/Peripheral/Display/download/files/G500.exe
http://jp.lgservice.com/bin/SWL/SwlHomeList.exe
モニタ用のinfファイル。LGのは404です。何やってんだか。
仕方ないので、USAサイトのドライバへ直リンク
 ・その他アプリインストール
lhaplus 1.12http://www.vector.co.jp/soft/win95/util/se169348.html
hoehoe.com、なくなって(?)ますね。しかたないんでVectorから。
Sleipnirhttp://www20.pos.to/~sleipnir/
便利なブラウザ。これ以外は使う必要ほとんど皆無とまで思ってます。
窓の手http://www.asahi-net.or.jp/~vr4m-ikw/
痒い所に手が届くソフト。
新規作成メニューなんかの要らないのはこれで削除ですな。
WindowsMedia Encoderhttp://download.microsoft.com/download/winmediatech40/wmenc71/7.1/W98NT42KMe/JA/wmencoder71.exe
*.wmvのエンコーダー。
TmpegEnchttp://www.tmpgenc.net/files/TMPGEnc-2.58.44.152-Free.zip
*.mpgのエンコーダー
Winamp2.81http://download.nullsoft.com/winamp/client/winamp281_full.exe
Winamp3は重いだけで使うメリット全然ないので、あえて2を。
LightWave7.5http://www.dstorm.co.jp/
マルチプロセッサ対応で、レンダリングが快速。
Metasequoia2.2.4http://www1.sphere.ne.jp/mizno/metaseq/
お気に入りのモデラーソフト。
asroc launcherhttp://hp.vector.co.jp/authors/VA016117/program/asroc239.lzh
便利なランチャーソフト。
 ・設定など   nView関連の設定を自分なりに変更。   画面のプロパティ>設定タブ>詳細ボタン>GeForce4 Ti4200タブ>詳細プロパティボタン>デスクトップユーティリティタブの   nView対応ボードに・・・って項目にチェック。   これでTwinView(2画面×1台)からMultiMonitor(1画面×2台)に切り替わります。   私個人的にTwinView、MultiMonitorという言葉で使い分けていますが、正式なものは定義されてない、   というかメーカー毎に機能も名称も異なるようです。   あと、マルチデスクトップの機能は要らないで切ってます。    ●BenchMark測定  毎度おなじみHDBENCH。この数値が全てではないんですけどね。     ・CPU   良い数値が出てくれてます。   XEONで、SECC2対応じゃないソフトはもっと遅いそうな。  ・メモリ   P3の頃の2倍くらい出てます。P4はクソ早いらしいですが。  ・AGP   GF3Ti500の頃の1.3倍くらい出てるようです。   設定どうにかすればもうちょっと出るんじゃないかなと思いますが。  ・HDD   Readが極端にUP、Write系はRaid5とあって、あまり数値はあがらず。   まあこんなもんでしょう。  ・その他ベンチ測定   以前のレンダリング時間を計ったときのをやってみました。   結果は32秒。CPUの使用率は以下の通り。   マルチな意味が無いですね。でもまあ早いです。      そもそも題材が悪いのでちゃんとしたもので計測してみました。   ここに様々な環境での結果が出ています。
Scene秒数(sec.)
Raytrace113.5
Textures5.3
Tracer Radiosity659.7
Tracer No Rad.369.7
Depth of Field9.4
Rad. Ref. Things86.6
Z-buffer Sort7.6
Variations114.6
  まずまずの数値が出ていると思います。ベスト10入りしてるのもありますね。   んで、3DMark2001が6035。      ぬ、理論地より遅いですな。9000くらい行くとの事。まだ調整不測のようです。   Direct3Dの設定で質重視にしたままだったり、クロックアップしてなかったりなんで   そのへんどうにかしないとダメなんでしょうか。 ●その他   使用感、いまいち遅いです。っていうか、早いはずなんだけどな。   FEPの変換が極端に遅いです。   文字打つだけでCPU20%くらいまで上昇し、   スペースで変換しようとすうと40%くらいにまでなってしまいます。   どこかの設定なんでしょうか。いろいろ試してみます。   ※2003/02/03追記    >そういえばOSインスト何度もやってるうちに直ってました。再発しません。謎のまま終了。   AGPにファンタシースターオンライン(オフライン専用版)がバンドルされてました。   オンラインにするためには\4,000だそうです。後日オフラインでやってみます。 ●関連リンク: Chris' LightWave Benchmarks VmagOnlineベンチマークリンク

| HOME | | 最新3ページ | | 最新100リスト | | 10回毎一覧 |
■0x112 ■0x227 ■0x55F ■0xDDF ■0xF36 ■0xF8B ■0xEBC ■0x114 ■0x33F ■0x77F ■0xAAF ■0xEEF
____________Report Library Ver2.00β 2003/08/27_bomber@xps.jp_http://bomber.xps.jp/_