3

JavaScript を使用してバラの画像を生成するという興味深い記事を読んでいました。ただし、この記事では、著者がモンテカルロ法を使用してコード サイズを縮小したと主張しているため、少し混乱しています。

作者がモンテカルロ法を使用してGIFインターレースのようなことをしていたので、画像がより速くロードされたように見えると私は理解しています. 私は何かを逃しましたか?

4

2 に答える 2

4

作成者が使用するモンテカルロ (MC) 方式は、結果として得られる画像ファイルの種類とは関係なく、そもそも画像がどのように生成されたかに関係しています。JS1K のポイントはコンパクトなコードを書くことなので、作成者はバラを数学的な形式で定義し、基本的なレンダーによって小さなドット (ソリッド イメージのように見えるようにする) で埋めます。

それらのフォームにどのように記入しますか? 1 つの方法は、サーフェスを均一にサンプリングすることです。つまり、設定された間隔でドットを配置します。@Jordanが引用したように、間隔が正しく設定されている場合にのみ機能します。小さくすると時間がかかります。大きくすると、画像はパッチワークです。ただし、表面をランダムにサンプリングすることで、問題全体を回避できます。ここで MC 方式の出番です。

MC は数値シミュレーションのツールと見なされることが多いため、MC に関するこの混乱は以前にも見たことがあります。そのように広く使用されていますが、中心となる考え方は、(問題に応じて) 各ステップに重み付けするバイアスを使用して間隔をランダムにサンプリングすることです。たとえば、物理シミュレーションは e^(-E/kT) の重みを持つ場合がありますが、数値積分器はサンプル ポイントでの導関数に比例する重みを使用する場合があります。詳細については、 wikipeida エントリ(およびその中の参考文献) から始めるとよいでしょう。

完全なバラは、完全に計算された関数と考えることができます。MC アルゴリズムが実行されると、正しい答えに収束する間、この関数がサンプリングされます。

于 2012-02-06T21:48:09.000 に答える
1

著者は、間隔ベースのサンプリングの制限を克服するためにモンテカルロ サンプリングを使用していると記事に書いています。これは、後者が「サーフェスごとに適切な間隔を設定する必要があるためです。間隔が大きい場合、レンダリングは速くなりますが、穴で終わる可能性があります。塗りつぶされていないサーフェスで. 一方, 間隔が小さすぎると, レンダリングの時間が法外な量まで増加します. WebMonkey の記事の結論 re: code size は正しくないと思います。

于 2012-02-06T21:40:07.757 に答える