Plik:Composition in 3D generated with the opensimplex noise.png

Treść strony nie jest dostępna w innych językach.
Z Wikibooks, biblioteki wolnych podręczników.

Rozmiar pierwotny(1504 × 2160 pikseli, rozmiar pliku: 3,3 MB, typ MIME: image/png)

Ten plik znajduje się w Wikimedia Commons i może być używany w innych projektach. Poniżej znajdują się informacje ze strony opisu tego pliku.

 
Ta PNG grafika rastrowa została stworzona za pomocą Python.

Opis

Opis
English: Composition is generated in Python. Nodes of bezier curves are following a vector field generated with the open simplex noise algorithm. Scene is ray-traced with PlotOptiX package.
Data
Źródło Praca własna
Autor Rob su

Licencja

Ja, właściciel praw autorskich do tego dzieła, udostępniam je na poniższej licencji
w:pl:Licencje Creative Commons
uznanie autorstwa na tych samych warunkach
Wolno:
  • dzielić się – kopiować, rozpowszechniać, odtwarzać i wykonywać utwór
  • modyfikować – tworzyć utwory zależne
Na następujących warunkach:
  • uznanie autorstwa – musisz określić autorstwo utworu, podać link do licencji, a także wskazać czy utwór został zmieniony. Możesz to zrobić w każdy rozsądny sposób, o ile nie będzie to sugerować, że licencjodawca popiera Ciebie lub Twoje użycie utworu.
  • na tych samych warunkach – Jeśli zmienia się lub przekształca niniejszy utwór, lub tworzy inny na jego podstawie, można rozpowszechniać powstały w ten sposób nowy utwór tylko na podstawie tej samej lub podobnej licencji.

Source code (python)

import numpy as np

# docs, examples: https://plotoptix.rnd.team
from plotoptix import TkOptiX
from plotoptix.materials import m_plastic
from plotoptix.utils import simplex

b = 7000   # number of curves
n = 60     # number pf nodes per curve
dt = 0.1   # nodes distance

ofs = 50 * np.random.rand(3)
inp = 5 * np.random.rand(b, 3, 4) - 2.5
for c in range(b):
    inp[c,1:,:3] = inp[c,0,:3]
    inp[c,:,0] *= 1.75            # more spread in X
    inp[c,:,3] = ofs              # sync the 4'th dim of the noise

pos = np.zeros((b, n, 3), dtype=np.float32)
r = np.zeros((b, n), dtype=np.float32)

rnd = simplex(inp)

for t in range(n):
    rt = 2.0 * (t+1) / (n+2) - 1
    rt = 1 - rt*rt
    r[:,t] = 0.07 * rt * rt
    for c in range(b):
        mag = np.linalg.norm(rnd[c])
        r[c,t] *= 0.2 + 0.8 * mag      # modulate thickness
        
        rnd[c] = (0.08/mag) * rnd[c]   # normalize and scale the step size
        inp[c,:,:3] += rnd[c]          # step in the field direction
        pos[c,t] = inp[c,0,:3]
        
    rnd = simplex(inp, rnd)            # calculate noise at the next pos

rt = TkOptiX(start_now=False)
rt.set_param(
    min_accumulation_step=1,
    max_accumulation_frames=200,
    rt_timeout=100000                  # accept lower fps
)

exposure = 1.2; gamma = 1.8
rt.set_float("tonemap_exposure", exposure)
rt.set_float("tonemap_gamma", gamma)
rt.set_float("denoiser_blend", 0.25)
rt.add_postproc("Denoiser")

rt.setup_material("plastic", m_plastic)

for c in range(b):
    if np.random.uniform() < 0.05:
        rt.set_data("c"+str(c), pos=pos[c], r=1.1*r[c], c=[0.4, 0, 0], geom="BezierChain")
    else:
        rt.set_data("c"+str(c), pos=pos[c], r=r[c], c=0.94, geom="BezierChain", mat="plastic")
        
rt.setup_camera("dof_cam", eye=[0, 0, 12], target=[0, 0, 0], fov=57, focal_scale=0.7, cam_type="DoF")

rt.setup_light("l1", pos=[8, -3, 13], color=1.5*np.array([0.99, 0.97, 0.93]), radius=5)
rt.setup_light("l2", pos=[-17, -7, 5], u=[0, 0, -10], v=[0, 14, 0], color=1*np.array([0.25, 0.28, 0.35]), light_type="Parallelogram")
rt.set_ambient([0.05, 0.07, 0.09])
rt.set_background(0)
rt.show()

Podpisy

Dodaj jednolinijkowe objaśnienie tego, co ten plik pokazuje
Abstract composition generated in Python using OpenSimplex noise 4D.

Obiekty przedstawione na tym zdjęciu

przedstawia

image/png

a7a7cae2173ccada711d97bd280477fe1f80c83f

3 457 113 bajt

2160 piksel

1504 piksel

Historia pliku

Kliknij na datę/czas, aby zobaczyć, jak plik wyglądał w tym czasie.

Data i czasMiniaturaWymiaryUżytkownikOpis
aktualny18:45, 23 maj 2020Miniatura wersji z 18:45, 23 maj 20201504 × 2160 (3,3 MB)Rob suUploaded own work with UploadWizard

Poniższa strona korzysta z tego pliku:

Globalne wykorzystanie pliku

Ten plik jest wykorzystywany także w innych projektach wiki:

Metadane