たびたびすみません。
どうやら、hsp3mt ではシングルスレッドではパフォーマンスは落ちるようです…。
#include "d3m.hsp"
;#runtime "hsp3mt" ; ランタイム
title "S.Programs d3module sample"
time_start = d3timer()
*mainloop
; ループタイマー
time = d3timer() - time_start
fps = d3getfps()
; フレームレートを表示
title "fps = " + fps + " - max = " +max
if (fps > max) : max = fps
redraw 0
randomize 0
color : boxf
; カメラ座標を回転させる
d3setcam cos(0.001 * time) * 500, sin(0.001 * time) * 750, cos(0.001 * time) * 1000
; ゼンマイ描画
color 255, 64, 64
; d3ribbonto 命令使用前の初期化 (d3lineto と似た扱い)
d3initlineto
repeat 100
x = cos(0.4 * cnt) * 10 * cnt
y = sin(0.4 * cnt) * 10 * cnt
z1 = -cnt
z2 = cnt
; 面を描画するときのコピーモードを設定
gmode 5, , , 64 + rnd(128)
;------------------------------------------------------------
; リボン状に連続する面を描画
d3ribbonto x, y, z1, x, y, z2
; └┬──┘ └┬──┘
; │ └ 位置 2 (x, y, z)
; └── 位置 1 (x, y, z)
;------------------------------------------------------------
loop
; らせん描画
color 255, 255, 64
d3initlineto
repeat 100
x = cos(0.3 * cnt) * sin(3.14 * cnt / 100) * 100
y = sin(0.3 * cnt) * sin(3.14 * cnt / 100) * 100
z1 = (cnt-51) * 20
z2 = (cnt-50) * 20
; 面を描画するときのコピーモードを設定
gmode 5, , , 64 + rnd(128)
; 描画
d3ribbonto x, y, z1, -x, -y, z2
loop
redraw
await
goto *mainloop
スクリプトは HSP3サンプルスクリプト d3m より抜粋。