OpenCLImplicitRender3D[poly,vars,r]
陰曲面 poly=0のレイトレーシングを,半径 r の境界となる球面を持つ vars の関数として行う.
OpenCLImplicitRender3D
OpenCLImplicitRender3D[poly,vars,r]
陰曲面 poly=0のレイトレーシングを,半径 r の境界となる球面を持つ vars の関数として行う.
詳細とオプション
- OpenCLLink アプリケーションは,Needs["OpenCLLink"]を使ってロードしなければならない.
- OpenCLImplicitRender3DはContourPlot3Dに似ている.
- "SingleFrameParameters"の形式は{min,max,default}であり,これはパラメータ
を制御する. - PerformanceGoalは"Quality"あるいは"Speed"に設定することができる.
- "SingleFrameParameters"は,{cameraPos,w,lightPos}という形式のリストである.cameraPos は円筒座標で,lightPos は直交(デカルト)座標で与えられる.パラメータ
は単一の実数である. - 使用できるオプション:
-
AspectRatio 1. 出力の縦横比 ImageSize 256 出力の幅 PerformanceGoal Automatic ターゲットレンダリングの性能 "Device" Automatic OpenCL計算が行われるデバイス "Floor" False レンダリングで床面を有効または無効にする "FloorPosition" -5. 床面の位置 "Platform" Automatic OpenCL計算が行われるプラットフォーム "Precision" 0.01 ヒットであると見なされる曲面と光線の間のイプシロン距離 "Shadows" True 影のレイトレーシング機能を有効または無効にする "SingleFrame" False 1フレームのレンダリングだけを表示する "SingleFrameParameters" None カメラの位置,フラクタルパラメータ,光の位置を含むリスト "SliderParameters" {-20., 20., 0.} 自由変数
のスライダパラメータ"TargetPrecision" "Single" 計算に使用する精度 "BlockSize" 128 起動ブロックサイズ
例題
すべて開く すべて閉じる例 (8)
Needs["OpenCLLink`"]tangle surface(絡みの曲面)をレンダリングする:
tangle = (x ^ 2 - 5) * x ^ 2 + (y ^ 2 - 5) * y ^ 2 + (z ^ 2 - 5) * z ^ 2 + w;OpenCLImplicitRender3D[tangle, {x, y, z, w}, 7.5, "Precision" -> 0.01, "SliderParameters" -> {0.0, 20.0, 11.8}, "Shadows" -> False]phi = N[GoldenRatio];
barth = 4 * (phi ^ 2 * x ^ 2 - y ^ 2)(phi ^ 2 * y ^ 2 - z ^ 2) * (phi ^ 2 * z ^ 2 - x ^ 2) - (1 + 2 * phi) * (x ^ 2 + y ^ 2 + z ^ 2 - 1) ^ 2;
OpenCLImplicitRender3D[barth, {x, y, z}, 2.5, "Shadows" -> False]OpenCLImplicitRender3D[(x ^ 2 + y ^ 2 + z ^ 2 + 2 * y - 1) * ((x ^ 2 + y ^ 2 + z ^ 2 - 2 * y - 1) ^ 2 - 8 * z ^ 2) + 16 * x * z * (x ^ 2 + y ^ 2 + z ^ 2 - 2 * y - 1), {x, y, z, w}, 7.5, "Precision" -> 0.005]bifolia surface(二葉の曲面)をレンダリングする:
OpenCLImplicitRender3D[(x ^ 2 + y ^ 2 + z ^ 2) ^ 2 - 5 * (x ^ 2 + z ^ 2) * y, {x, y, z}, 7.5, "Precision" -> 0.01, "SliderParameters" -> {0.0, 20.0, 11.8}, "Shadows" -> False, "SingleFrame" -> True, "SingleFrameParameters" -> {{5.0, 5.0, 0.0}, {0.0}, {10.0, 10.0, 5.0}}]OpenCLImplicitRender3D[64 * (1 - z) ^ 3 * z ^ 3 - 48 * (1 - z) ^ 2 * z ^ 2 * (3 * x ^ 2 + 3 * y ^ 2 + 2 * z ^ 2) + 12 * (1 - z) * z * (27 * (x ^ 2 + y ^ 2) ^ 2 - 24 * z ^ 2 * (x ^ 2 + y ^ 2) + 36 * Sqrt[2] * y * z * (y ^ 2 - 3 * x ^ 2) + 4 * z ^ 4) + (9 * x ^ 2 + 9 * y ^ 2 - 2 * z ^ 2) * (-81 * (x ^ 2 + y ^ 2) ^ 2 - 72 * z ^ 2 * (x ^ 2 + y ^ 2) + 108 * Sqrt[2] * x * z * (x ^ 2 - 3 * y ^ 2) + 4 * z ^ 4), {x, y, z}, 7.5, "SingleFrame" -> True, "Precision" -> 0.01, "Shadows" -> False, "SingleFrameParameters" -> {{0.01, 8.0, 0.0}, {0.0}, {0.0, 0.0, 0.0}}]OpenCLImplicitRender3D[x ^ 2 * z ^ 2 - y + w, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]OpenCLImplicitRender3D[w * (2 * x ^ 2 + y ^ 2 + z ^ 2 - 1) ^ 3 - (1 / 10) * x ^ 2 * z ^ 3 - y ^ 2 * z ^ 3, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]kiss surface(キス形の曲面)をレンダリングする:
OpenCLImplicitRender3D[(x ^ 2 + z ^ 2) - y ^ 4 (1 - y) / 2 + w, {x, y, z, w}, 7.5, "Precision" -> 0.005]おもしろい例題 (13)
悪魔の曲線(devil's curve)をレンダリングする:
OpenCLImplicitRender3D[x ^ 4 + 2 * x ^ 2 * z ^ 2 - 0.36 * x ^ 2 - y ^ 4 + 0.25 * y ^ 2 + z ^ 4, {x, y, z}, 7.5, "Precision" -> 0.01, "Shadows" -> False]bicorn surface(二角の曲面)をレンダリングする:
OpenCLImplicitRender3D[y ^ 2 * (w ^ 2 - (x ^ 2 + z ^ 2)) - (x ^ 2 + z ^ 2 + 2 * w * y - w ^ 2) ^ 2, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]cassini = With[{a = 0.45, b = 0.5, c = 16},
(x ^ 2 + y ^ 2 + z ^ 2 + a ^ 2) ^ 2 - c * a ^ 2 * (x ^ 2 + z ^ 2) - b ^ 2
]OpenCLImplicitRender3D[cassini, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]OpenCLImplicitRender3D[-5(x ^ 2 * y + x ^ 2 * z + y ^ 2 * x + y ^ 2 * z + z ^ 2 * y + z ^ 2 * x) + 2 * (x * y + x * z + y * z), {x, y, z, w}, 1.0, "Precision" -> 0.01, "Shadows" -> False]クレブシュ(Clebsch)対角三次曲線をレンダリングする:
OpenCLImplicitRender3D[81 * (x ^ 3 + y ^ 3 + z ^ 3) - 189 * (x ^ 2 * y + x ^ 2 * z + y ^ 2 * x + y ^ 2 * z + z ^ 2 * x + z ^ 2 * y) + 54 * (x * y * z) + 126 * (x * y + x * z + y * z) - 9 * (x ^ 2 + y ^ 2 + z ^ 2) - 9 * (x + y + z) + 1, {x, y, z, w}, 1.0, "Precision" -> 0.01, "Shadows" -> False]OpenCLImplicitRender3D[z ^ 2 * x ^ 2 - z ^ 4 - 2 * z * x ^ 2 + 2 * z ^ 3 + x ^ 2 - z ^ 2
- (x ^ 2 - z) ^ 2 - y ^ 4 - 2 * x ^ 2 * y ^ 2 - y ^ 2 * z ^ 2 + 2 * y ^ 2 * z + y ^ 2, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]folium = With[{a = 1, b = 1}, (y ^ 2 + z ^ 2) * (1 + (b - 4 * a) * x) + x ^ 2 * (1 + b)]OpenCLImplicitRender3D[folium, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]OpenCLImplicitRender3D[0.5 * x ^ 5 + 0.5 * x ^ 4 - (y ^ 2 + z ^ 2), {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]torus = With[{r0 = 0.6, r1 = 0.4},
x ^ 4 + 2 * x ^ 2 * y ^ 2 - 2 * x ^ 2 * z ^ 2 - 2 * (r0 ^ 2 + r1 ^ 2) * x ^ 2 + y ^ 4 - 2 * y ^ 2 * z ^ 2 + 2 * (r0 ^ 2 - r1 ^ 2) * y ^ 2 + z ^ 4 + 2 * (r0 ^ 2 + r1 ^ 2) * z ^ 2 + (r0 ^ 2 - r1 ^ 2) ^ 2]OpenCLImplicitRender3D[torus, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]Kampyle of Eudoxusの曲面をレンダリングする:
kamp = With[{a = 0.2, c = 1.0},
(y ^ 2 + z ^ 2) - c ^ 2 * x ^ 4 + c ^ 2 * a ^ 2 * x ^ 2]OpenCLImplicitRender3D[kamp, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]mitre surface(留め継ぎの曲面)をレンダリングする:
OpenCLImplicitRender3D[4 * x ^ 2 * (x ^ 2 + y ^ 2 + z ^ 2) - y ^ 2 * (1 - y ^ 2 - z ^ 2), {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]torus = With[{r1 = 2},
x ^ 4 + y ^ 4 + z ^ 4 + 2 x ^ 2 y ^ 2 + 2 x ^ 2 z ^ 2 + 2 y ^ 2 z ^ 2
- 2 (w ^ 2 + (w - r1) ^ 2) x ^ 2 + 2 (w ^ 2 - (w - r1) ^ 2) y ^ 2
- 2 (w ^ 2 + (w - r1) ^ 2) z ^ 2 + (w ^ 2 - (w - r1) ^ 2) ^ 2]OpenCLImplicitRender3D[torus, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]アーネシの曲線(アーネシの魔女,Witch of Agnesi)曲面をレンダリングする:
OpenCLImplicitRender3D[w * (y - 1) + (x ^ 2 + z ^ 2) * y, {x, y, z, w}, 7.5, "Precision" -> 0.01, "Shadows" -> False]テクニカルノート
関連するガイド
テキスト
Wolfram Research (2010), OpenCLImplicitRender3D, Wolfram言語関数, https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLImplicitRender3D.html.
CMS
Wolfram Language. 2010. "OpenCLImplicitRender3D." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLImplicitRender3D.html.
APA
Wolfram Language. (2010). OpenCLImplicitRender3D. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLImplicitRender3D.html
BibTeX
@misc{reference.wolfram_2026_openclimplicitrender3d, author="Wolfram Research", title="{OpenCLImplicitRender3D}", year="2010", howpublished="\url{https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLImplicitRender3D.html}", note=[Accessed: 15-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_openclimplicitrender3d, organization={Wolfram Research}, title={OpenCLImplicitRender3D}, year={2010}, url={https://reference.wolfram.com/language/OpenCLLink/ref/OpenCLImplicitRender3D.html}, note=[Accessed: 15-August-2026]}