新しく発言する EXIT インデックスへ
続、3DCGライブラリ

  続、3DCGライブラリ 山中和義 2005/11/10 11:34:38 
  線と面との交点を計算してみました。 山中和義 2005/11/15 10:16:06 
   └2次元も表示できようにしてみました。 山中和義 2005/11/17 21:41:21 
    └参考Basic4GL 山中和義 2005/12/04 20:09:44 

  続、3DCGライブラリ 山中和義 2005/11/10 11:34:38  ツリーへ

続、3DCGライブラリ 返事を書く
山中和義 2005/11/10 11:34:38
Zソート、フラットシェーディングをサポートしました。
http://www.urban.ne.jp/home/kz4ymnk/seminar/basic/3dcg_api2.txt

フレームレートは、PentiumV700MHzで7fpsです。(10秒ごとに算出)
みなさんのパソコンではどのくらいでしょうか?

線と面との交点などを計算すれば(オブジェクトの細分化)、
もう少し、まともに表示できそうです。

 例. 立体図形と座標の格子との交差


ワイヤーフレーム版
http://www.urban.ne.jp/home/kz4ymnk/seminar/basic/3dcg_api.txt

  線と面との交点を計算してみました。 山中和義 2005/11/15 10:16:06  ツリーへ

Re: 続、3DCGライブラリ 返事を書く
山中和義 2005/11/15 10:16:06
線と面との交点を計算してみました。

http://www.urban.ne.jp/home/kz4ymnk/seminar/basic/3dcg_api2.txt

フレームレートは、PentiumV700MHzで5fpsです。(10秒ごとに算出)

   └2次元も表示できようにしてみました。 山中和義 2005/11/17 21:41:21  ツリーへ

Re: 線と面との交点を計算してみました。 返事を書く
山中和義 2005/11/17 21:41:21
2次元も表示できようにしてみました。

http://www.urban.ne.jp/home/kz4ymnk/seminar/basic/3dcg_api2.txt

メイン部分を下記のものに差し替えてください。

SUB draw_axes(scl) !ワールド座標(XY軸)を描く
CALL glBegin(GL_LINES) !線を描く
CALL glColor3f(0.5,0.5,0.5)
FOR i=-10 TO 10 !XZ平面 x方向
CALL glVertex2f(i*scl,-10*scl)
IF i=0 THEN
CALL glVertex2f(0,0)
ELSE
CALL glVertex2f(i*scl,10*scl)
END IF
NEXT i
FOR i=-10 TO 10 !XZ平面 z方向
CALL glVertex2f(-10*scl,i*scl)
IF i=0 THEN
CALL glVertex2f(0,0)
ELSE
CALL glVertex2f(10*scl,i*scl)
END IF
NEXT i
CALL glEnd

CALL glBegin(GL_LINES)
CALL glColor3f(1,0,0) !X軸(赤)
CALL glVertex2f(0,0)
CALL glVertex2f(20*scl,0)
CALL glColor3f(0,1,0) !Y軸(緑)
CALL glVertex2f(0,0)
CALL glVertex2f(0,20*scl)
CALL glEnd
END SUB

SUB DRAW !図形を描く
CALL glColor3f(1,1,0)

CALL glBegin(GL_LINE_LOOP)
CALL glVertex2f(-0.9, -0.9)
CALL glVertex2f(0.9, -0.9)
CALL glVertex2f(0.9, 0.9)
CALL glVertex2f(-0.9, 0.9)
CALL glEnd
END SUB

SUB DISPLAY !GLUTディスプレイコールバック関数
CALL glClear(f) !画面をクリアする

CALL draw_axes(0.1)

CALL DRAW

CALL glFlush
END SUB

SUB reshape(w,h) !GLUTシェイプコールバック関数
END SUB

SUB keyboard(c,x,y) !GLUTキーボード入力コールバック関数
IF c=27 THEN STOP !ESCキーなら終了
END SUB

SUB timer(dummy) !GLUTタイマーコールバック関数
END SUB

SUB init !シーンの初期化
CALL glClearColor(0,0,0,1) !背景色を設定する
END SUB


!main
CALL glutInit !GLUTを初期化する

CALL init
CALL glutMainLoop !あとのことはGLUTにまかせる

END

    └参考Basic4GL 山中和義 2005/12/04 20:09:44  ツリーへ

Re: 2次元も表示できようにしてみました。 返事を書く
山中和義 2005/12/04 20:09:44
参考 Basic4GL
OpenGL1.1をほぼサポートしたBASICコンパイラ処理系

http://www.basic4gl.net/


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。