私は動作しますが(まだ)照明を持っていないレイトレーサーを作ってるんです。知らない人のために、レイトレーストレーサーは、カメラのビューア(ビューア)から画面の各ピクセルを送信し、3D空間内のオブジェクトの衝突をテストし、レイがオブジェクトに当たった場合にピクセルを着色することによって動作します。Javaの:マルチスレッドと2Dのスレッド
あなたは計算のたくさんある各画素の計算を実行する必要があります。だから私はピクセルの各列のスレッドを持っています。現時点では、私はRunnableを実装しています。これにより、プログラムの速度が向上し、外部プロセスの全体的な処理速度(これは良い)に顕著な影響はありません。
照明については、カメラの光線がオブジェクトと交差する3D空間でポイントを取得し、そのポイントを点灯させる必要があります(存在するすべての光源を考慮してください)マルチスレッド)。私が持っスレッドが複数のスレッド(2Dがスレッド)を作成することを想像
が悪い習慣ですが、それが効率的になり、これを実現するためのいくつかのライブラリーまたは方法はありますか?私はこれが無限回帰につながることはないと知っていますが、私はCPUを過負荷にしたくありません。基本的に、「2Dスレッド」を安全に必要とするプロセスをどのように処理するのですか?
あなたは[ 'RecursiveAction']を使用することができます(https://docs.oracle.com/javase/8/docs/api/java /util/concurrent/RecursiveAction.html)。 「ForkJoinPoolのレイトレーシング」についてグーグルで試してみてください。 –