gpcnvaxisは僕もちょっとよく分からないです。ヘルプにはモード2までしか説明ないのにサンプルには3が設定されてますし…
addang id_camera, 0, 0, atan(-camz, camx) - M_PI / 2
はモデルからカメラへの角度が欲しかったのでこうなってます。反射して目に飛び込んでくるならカメラ方向に傾くのが自然かと思ったので。
gpfloorはバッファid_shadowに描画したものをテクスチャ(マテリアル)にしているので、大きさが変われば反射映像の大きさも変わってしまいます。
rt = sqrt(camx * camx + camy * camy + camz * camz) / 8 ; 8はid_floorの大きさ(大きさを変えてたらここも変える)
bs = 0.025 ; モデルのスケール
setscale id_model, bs * rt, bs * rt, bs * rt ; カメラの距離に応じてスケール変える
このスクリプトを前回のスクリプトの直後に追加して、
setscale id_model, bs, bs, bs ; スケール戻す
を gsel id_render の上あたりに追加してください。
スケールも前回よりましになったと思います。(まだカメラの角度が浅いときが少し変ですが)
これで id_floor の大きさを変えても反射の大きさも追従すると思います。ただしテクスチャ(バッファ)の大きさによって解像度が異なります。
無理やりそれっぽく見せるための処理なので実際ちゃんとした方法は分かりません。
あと反射の力技としてモデルのスケールを反転させて床のしたにも配置する方法もありますね。ただスケール反転させると何故かモデルのメッシュが所々欠ける…