Skip to content

Pattern

Rendering function

from fdray import *


def render(texture1, texture2):
    sphere = Declare(Sphere(0, 1.2))
    cylinder = Declare(Cylinder("-z", "z", 1))
    box = Declare(Box(-1, 1) - Box(-1, 1).translate(1))
    shapes = Union(
        Object(sphere).translate("-2.7*y"),
        Object(cylinder),
        Object(box).translate("2.7*y"),
    )
    return Scene(
        Include("colors.inc", "textures.inc", "woods.inc", "stones.inc", "metals.inc"),
        Camera(10, 20, view_scale=4),
        LightSource(0, "white"),
        shapes.add(texture1).translate("1.5*z"),
        shapes.add(texture2).translate("-1.5*z"),
    ).render(800, 600)

Agate

render(Pigment("agate").scale(0.8), [Color("White*0.9"), Normal("agate", 1).scale(0.8)])

Bumps

render(
    Pigment("bumps", ColorMap((0, Color("blue")), (0.5, Color("white")))).scale(0.3),
    [Color("White*0.9"), Normal("bumps", 1).scale(0.3)],
)

Checker

render(
    Pigment("checker", Pigment("DMFWood4"), Pigment("DMFWood1")).scale(0.5),
    Texture("checker", Texture("Aluminum"), Texture("T_Stone18")).scale(0.5),
)

Granite

render(Pigment("granite"), [Color("White*0.9"), Normal("granite", 1)])

Marble

render(
    Pigment("marble", turbulence=0.8),
    [Color("White*0.9"), Normal("marble", 1, turbulence=0.8)],
)