アニメーション

BMRTのアニメーション

BMRT(RenderMan)でアニメーションを作るには、RiFrameBegin()で始まり、RiFrameEnd()で終るフレームブロックの内部にフレームごとの処理を記述しておく。
フレームブロックはネストできない。

簡単なアニメーションのプログラム。

  1. 以下のC言語プログラムをanim.cという名前で作る。
    #include <ri.h>
    
    main()
    {
    	int frame;
    	char filename[128];
    	RtColor color = {0.8, 0.0, 0.0};
    
    	RiBegin(RI_NULL);
    		for(frame = 1; frame <= 10; frame++)
    		{
    			RiFrameBegin(frame);
    				sprintf(filename, "sphere%d.tif", frame);
    				RiDisplay(filename, RI_FILE, RI_RGBA, RI_NULL);
    				RiWorldBegin();
    					RiColor(color);
    					RiTranslate(frame*0.1 - 0.5, 0.0, 0.0);
    					RiSphere(1.0, -1.0, 1.0, 360.0, RI_NULL);
    				RiWorldEnd();
    			RiFrameEnd();
    		}
    	RiEnd();
    }
    
  2. コンパイル。
    # cc anim.c -o anim -lribout
  3. RIBファイルを出力。
    # shpere1 > anim.rib
  4. RIBファイルをレンダリング。
    # rendrib anim.rib

アニメーション・サンプル

プログラムの解説


Prev
Home | Index
Mail