juliatokai
以下のような画像が出力できるソフトウェア
#declare
, #if
, #while
, #marcro
)camera{
perspective
location <2,1,2>
look_at <0,0,0>
}
light_source{
<2,3,4>
color rgb<1,1,1>
}
background{rgb<1,1,1>}
sphere{<0,0,0>,0.2}
cylinder{<0,0,0>,<1,0,0>,0.1 pigment{rgb<1,0,0>}}
cylinder{<0,0,0>,<0,1,0>,0.1 pigment{rgb<0,1,0>}}
cylinder{<0,0,0>,<0,0,1>,0.1 pigment{rgb<0,0,1>}}
<...>
は2,3,4次元のみ→ JuliaからもPOV-Rayのコードを出力したい!
Sphere
, Box
, Torus
, Polygon
, csgUnion
など.pov
ファイルの生成 (物体やカメラ).ini
ファイルの生成 (レンダリングの設定)run(povray filename.pov)
を実行JuliRay
Camera
ParallelCamera
PerspectiveCamera
Light
PointLight
Object
ColoredObject
rgbColor
rgbftColor
PrimitiveObject
Box
Cone
Cylinder
Disc
Empty
Polygon
Sphere
Torus
TransformedObject
AffineTransform
ParallelTranslation
Scaling
csgObject
csgClip
csgDifference
csgIntersection
csgMerge
csgUnion
Pigment
FT
木構造で管理できるので便利!
2半径のみ指定するトーラス
struct Torus <: PrimitiveObject
R :: Float64
r :: Float64
Torus(R,r) = ?(r == 0) Empty() : new(abs(R),abs(r))
end
中心と法ベクトルと2半径を指定するトーラス
Torus(center::RealVector, normal::RealVector, R::Float64, r::Float64)
3点と半径を指定するトーラス
Torus(p₁::RealVector, p₂::RealVector, p₃::RealVector, r::Float64)
RGB(r,g,b)
を使用RGBA(r,g,b,a)
は使っていない
FT(f,t)
を別に用意して実装
filter transmit
自分で定義した型の等号判定が上手くできない
(これと同じ理由?)