블로그 이미지
Leeway is... the freedom that someone has to take the action they want to or to change their plans.
maetel

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
  • total
  • today
  • yesterday

Category

2008. 3. 20. 17:17 @GSMC/정문열: Generative Art
2008-03-20 나무 @504


random

uniform distribution
http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29

standard normal distribution 정규 분포
http://en.wikipedia.org/wiki/Standard_distribution

cf. http://en.wikipedia.org/wiki/Uniform_distribution_%28ecology%29



VarX: [-1, 1] * [-1, 1] -> [-1, 1]
VarY

VarX (x,y) = ( R(x,y), G(x,y), B(x,y) )  <- 이미지


normalization

-1 <= {R, G, B} <= 1

cf. (-1,1)로 하면 (0,1)일 때보다 조작의 가능성이 높아진다

R, G, B: 8bits => (0,0,0) ~ (255,255,255)




'@GSMC > 정문열: Generative Art' 카테고리의 다른 글

class 3/27  (0) 2008.03.27
tree (data structure)  (0) 2008.03.24
references for basic programming  (0) 2008.03.17
Inversion Method  (0) 2008.03.08
Monte Carlo method + random sampling  (0) 2008.03.08
posted by maetel
2007. 12. 27. 00:14 Method/CG

'Method > CG' 카테고리의 다른 글

Maya tutorials  (0) 2008.02.18
curved surfaces 곡면  (0) 2008.02.12
플래시 클럽  (0) 2007.12.22
Blender tutorials  (0) 2007.12.03
Pixar Animation Studio <Subdivision Surfaces in Character Animation>  (0) 2007.01.08
posted by maetel
2007. 11. 17. 00:44 Techne/Greenberg: Creative Code
사용자 삽입 이미지
Processing: Creative Coding and Computational Art

Ira Greenberg

friends of ED, 2007

소스코드 다운로드




Ira Greenberg at Miami University, Ohio
associate professor in the School of Fine Arts and Interactive Media Studies program
affiliate member of the Department of Computer Science and System Analysis

aesthetics and computation
expressive programming
emergent forms
net-based art
artificial intelligence
physical computing
computer art pedagogy

Keith Peters
Carole Katz
Mark Napier  www.potatoland.org


Questions to
(1) support@friendsofed.com with "617x" in the subject of your e-mail.
(2) processing@iragreenberg.com

http://java.sun.com/j2se/1.4.2/docs/api/index.html





Part One: Theory oof Processing and Computational Art

1 Code Art


'Techne > Greenberg: Creative Code' 카테고리의 다른 글

[Ira Greenberg] 1. Code Art  (2) 2007.11.28
posted by maetel
Dave Pape's
Class 2 (30 Aug) - Graphics hardware & software; Python

Python

Features:

  • Dynamic data typing

  • Automatic memory management

  • Advanced data types (strings, lists, dictionaries)

  • A large standard library

  • Extensible & embeddable

Building Blocks

  • Comments
  • Numbers
  • Strings
  • Lists
  • Variables
  • Operators
  • Statements
    • Assignment
    • If - elif - else
    • For loops
    • While loops
  • Functions
  • Variable scope
  • Modules
  • Advanced data types


8진수는 영어 문자 o 를 붙여서 표현하고
16진수는 0x를 붙여서 표현하고
10진수는 그냥 표시한다.

% operator (modulo)

pass

Modules are pre-written packages of code that can be used in a Python program.
They are similar to libraries in other languages.

math modules (Numeric and Mathematical Modules)

string modules
(string manipulation operations)

keys ()

Mapping Types -- dict

A class is a data type, for objects that can contain both variables and functions.
A class can implement certain operations that are invoked by special syntax (such as arithmetic operations or subscripting and slicing) by defining methods with special names.


Graphics Pipeline

  • Program & data reside in PC memory
  • CPU runs program, calling graphics commands
  • Commands & data transferred to graphics card
  • Images rendered into graphics card memory
  • Video display generated from graphics card memory
Interface between CPU & graphics card:
  • PCI
  • AGP (1x, 2x, 4x, 8x)
  • PCI Express
Interface between graphics card & display:
  • VGA
  • DVI
  • Composite, S-Video


A scene graph is a tree used to represent a graphical scene.
A scene-graph is a data structure that arranges the logical and often (but not necessarily) spatial representation of a graphical scene.

Graphics APIs

  • OpenGL
  • Direct3D

  • Performer
  • OpenInventor
  • OpenSceneGraph
  • Java3D

  • Virtools
  • OpenDX
  • AVS

OpenGL (Open Graphics Library) is a standard specification defining a cross-language cross-platform API for writing applications that produce 2D and 3D computer graphics. http://www.opengl.org/

Direct3D

Performer

Open Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics API designed by SGI to provide a higher layer of programming for OpenGL. http://oss.sgi.com/projects/inventor/

OpensceneGraph

Java3D

Virtools

OpenDX

AVS


GLUT (the OpenGL Utility Toolkit) is a library of utilities for OpenGL programs, which primarily perform system-level I/O with the host operating system.

posted by maetel
Dave Pape is a member of the Department of Media Study at the University at Buffalo.
The course was informed by Ed.

DMS 423/523: Programming Graphics 1
Fall 2007

Course Info

When: Tuesday/Thursday 2:00 - 3:50 pm
Where: CFA 242

Instructor: Dave Pape
e-mail: depape at buffalo.edu
Office: CFA 250
Office hours: Wed 12-1pm; Tues/Thurs 1-2pm

Website: http://resumbrae.com/ub/dms423/

Course Description

This production course introduces students to the concepts and practice of programming 2-D and 3-D computer graphics using OpenGL. The major focus is on developing the skills needed to create interactive, real-time CG experiences. Students write their own code to create customized computer tools and visuals and learn the fundamentals of graphics.

Upon completing this course, a student should have an understanding of basic computer graphics technical concepts - e.g., be able to describe the different types of geometric transformations, define what a normal vector is and what it's used for, understand how a texture image is applied to a shape, etc. The student should also be comfortable with using programming and mathematics (trigonometry, interpolation, vectors) to build and control a graphical scene.

Textbook

There is no single required text. Rather, students should choose one of the following texts, based on their background and programming experience:

  • OpenGL Programming Guide, Fourth Edition, David Shreiner et al.
  • OpenGL Distilled, Paul Martz
  • Computer Graphics with OpenGL, Donald Hearn, Pauline Baker.
  • Interactive Computer Graphics: A Top-Down Approach Using OpenGL, Edward Angel.

Useful websites:

Topics

The major topics that we will cover are:

  • Color
  • Geometry (shapes)
  • Transformations
  • Projections
  • Lighting
  • Texturing
  • Sound
  • Math



Draft Schedule

Aug 28/30 Introduction
Sep 4/6 Images, frame buffer
Sep 11 Geometry, coordinate systems
Sep 20/22 Transformations
Sep 25/27 More transformations, 3D coordinates
Oct 2/4 Depth cues
Oct 9/11 Math
Oct 16/18 Interaction
Oct 23/25 Texturing
Oct 30/Nov 1 Lighting
Nov 6/8 Motion math
Nov 13/15 Sound
Nov 20 Alpha
Nov 27/29 PD
Dec 4/6 Special topics TBD

posted by maetel
2007. 7. 23. 18:30 Method/VFX
invalid-file

<Programming Graphics Hardware>

Randy Fernando, Mark Harris, Matthias Wloka, Cyril Zeller
NVIDIA Corporation


posted by maetel
2007. 6. 18. 21:07 Method/VFX
Jonathan T. Moon & Stephen R. Marschner
<Simulating Multiple Scattering in Hair Using a Photon Mapping Approach>

Program of Computer Graphics, Cornell University
Appears in ACM Transactions on Graphics 25:3
Proceedings of SIGGRAPH 2006


        > summary:

keywords:


The types of non-uniformities that can cause scattering, sometimes known as scatterers or scattering centers, are too numerous to list, but a small sample includes particles, bubbles, droplets, density fluctuations in fluids, defects in crystalline solids, surface roughness, cells in organisms, and textile fibers in clothing.

path tracing

multiple scattering
The main difference between the effects of single and multiple scattering is that single scattering can usually be treated as a random phenomenon and multiple scattering is usually more deterministic.
(Single scattering is therefore often described by probability distributions. With multiple scattering, the randomness of the interaction tends to be averaged out by the large number of scattering events, so that the final path of the radiation appears to be a deterministic distribution of intensity as the radiation is spread out.
The description of scattering and the distinction between single and multiple scattering are often highly involved with wave-particle duality.)

forward scattering
    http://en.wikipedia.org/wiki/Mie_theory
    Light Scattering Codes Library:  http://atol.ucsd.edu/scatlib

photon mapping

    Zack Waters' introduction

Monte Carlo method

density estimation

diffusion process

ray map
ray tracing

2p
Isotropy (the opposite of anisotropy) is the property of being independent of direction. Isotropic radiation has the same intensity regardless of the direction of measurement, and an isotropic field exerts the same action regardless of how the test particle is oriented.

Albedo is the ratio of reflected to incident electromagnetic radiation. It is a unitless measure indicative of a surface's or body's diffuse reflectivity.

Azimuth is the horizontal component of a direction (compass direction), measured around the horizon, from the north toward the east (i.e., clockwise) in astronomy and geodesy and from the south toward the west (i.e., clockwise) in surveying. It is usually expressed in degrees.
Azimuth is also terms used in mining for a similar, but slightly different angle: azimuths and meridian angles are used to name any angle measured clockwise from any meridian.

3p
solid angle Ω, that an object subtends at a point is a measure of how big that object appears to an observer at that point. For instance, a small object nearby could subtend the same solid angle as a large object far away. The solid angle is proportional to the surface area, S, of a projection of that object onto a sphere centered at that point, divided by the square of the sphere's radius, R. (Symbolically, Ω = k S/R², where k is the proportionality constant.) A solid angle is related to the surface area of a sphere in the same way an ordinary angle is related to the circumference of a circle.


(the outgoing radiance) = (the scattering function) * (the incident light distribution)

fiber tangent u

(incident light) = (direct light) + (scattered light)


Monte Carlo integration is numerical quadrature using pseudorandom numbers. That is, Monte Carlo integration methods are algorithms for the approximate evaluation of definite integrals, usually multidimensional ones. The usual algorithms evaluate the integrand at a regular grid. Monte Carlo methods, however, randomly choose the points at which the integrand is evaluated.
The traditional Monte Carlo algorithm distributes the evaluation points uniformly over the integration region. Adaptive algorithms such as VEGAS and MISER use importance sampling and stratified sampling techniques to get a better result.
E(f;N) = V \cdot \langle f \rangle = V\frac{1}{N} \sum_{i=1}^N f(x_i),
(Random sampling of the region may not uncover all the important features of the function, resulting in an underestimate of the error.)



ref.
<A conceptual model of the dehydration of air due to freeze-drying by optically thin, laminar cirrus rising slowly across the tropical tropopause>
Eric J. Jensen, Leonhard Pfister, Andrew S. Ackerman, and Azadeh Tabazadeh
NASA Ames Research Center, Moffett Field, California
Owen B. Toon
University of Colorado, Laboratory for Atmospheric and Space Physics, Boulder, Colorado   Journal of Geophysical Research, Vol. 106, N0. D15, Pages 17,237-17252, August 16, 2001
http://pubs.giss.nasa.gov/abstracts/2001/Jensen_etal.html
http://link.aps.org/abstract/PRA/v63/e052701


posted by maetel
2007. 5. 20. 01:20 Method/VFX
http://doi.acm.org/10.1145/357318.357320
invalid-file

Willian T. Reeves <Particle Systems—a Technique for Modeling a Class of Fuzzy Objects>, ACM Transactions on Graphics, Vol.2, no.2, April 1983, Page 91-108


links:
LucanFilm Ltd.
Siggraph: Particle Systems


1
Particle systems model an object as a cloud of primitive particles that define its volume.
Stochastic processes are used to generate and control the many particles within a particle system.

The representation of particel systems :
  1. as clouds of primitive particles that define its volume (not by a set of primitive surface elements)
  2. depending on time (;changing form and moving with the passage of time)
  3. using stochastic processes (to create and change an object's shape and appeareance)

Advantages of the particle system over classical surface-oriented techinique :
  1. A particle is a much simpler primitive than polygon.
    • efficiency of computation time
    • easier removing temporal aliasing  effects (by Motion blurring of fast-moving objects)
  2. The model definition is procedural and is controlled by random numbers.
    • efficiency of human design time (to obtain a highly detailed model)
    • ability to adjust the level of detail (to suit a specific set of viewing parameters)
      • fractal surfaces
  3. It is easier to model "alive" objects changing form over a period of time.

keywords:
image synthesis
stochastic process
    Stochastics
fractal surfaces
procedure
random numbers
stochastic modeling
fractal modeling


2. BASIC MODEL OF PARTICLE SYSTEMS
A particle system is a collection of many minute particles that together represent a fuzzy object. Over a period of time, particles are generated into a system, move and change from within the system, and die from the system.

frame buffer =>
during each interval of time = at a given frame

    2.1 Particle Generation
NParts_f = (MeanParts_sa_f + Rand()*VarParts_sa_f)*ScreenArea
    MeanParts_sa_f = InitialMeanParts_sa + deltaMeanParts_sa*(f-f_0)

    2.2 Particle Attributes
initial position => the origin of a particle system
initial velocity
initial color <= average RGB values and the maximum deviation from them
initial transparency
initial size
shape => a region of newly born random particles about its origin
lifetime
A particle's initial color, transparency and size are determined by
mean values like MeasSpeed, maximum variations like VarSpeed of below:
InitialSpeed = MeanSpeed + Rand()*VarSpeed

사용자 삽입 이미지
More complicated generation shapes based on the law of nature or on chaotic attractors have been envisioned.
    eg. streaked spherical shapes => motion-blur particles

    2.3 Particle Dynamics
    2.4 Particle Extinction
  • when a particle's lifetime reaches zero
  • when the intensity of a particle, calculated from its color and transparency, drops belowa specified threshold
  • when a particle moves more than a given distance in a given direction from the origin of its parent particle system
    2.5 Particle Rendering
        (1) Explosions and fire, the two fuzzy objects we have worekd with the most, are modeled well with the assumption that each particle can be displayed as a point light source. (Other fuzzy objects, such as clouds and water, are not.)
        (2) Since particles do not reflect but emit light, shadows are no longer a problem.
    2.6 Particle Hierarchy


3. USING PARTICLE SYSTEMS TO MODEL A WALL OF FIRE AND EXPLOSIONS
The Genesis Demo sequence from the movie Star Trek II: The Wrath of Khan was generated by the Computer Graphics project of Lucasfilm Ltd.

사용자 삽입 이미지
The initial direction of the particles' movement was constrained by the system's ejection angle to fall within the region bounded by the inverted cone. As particles flew upward, the gravity parameter pulled them back down to the planet's surface, giving them a parabolic motion path. The number of particles generated per frame was based on the amount of screen area covered by the particle system.
Varying the mean velocity parameter caused the explosions to be of different heights.
The rate at which a particle's color changed simulated the cooling of a glowing piece of some hypothetical material.

When a motion picture camera is used to film live action at 24 frames per second, the camera shutter typically remains open for 1/50 of a second. The image captured on a frame is actually an integration of approximately half the motion that occurred between successive frames. An object moving quickly appears blurred in the individual still frames.

    ref. Tom Duff

    cf. seed value
 



4. OTHER PPLICATIONS OF PARTICLE SYSTEMS
    4.1 Fireworks

posted by maetel
2007. 1. 8. 02:27 Method/CG
invalid-file

Ton DeRose, Michael Kass, Tien Truong <Subdivision Surfaces in Character Animation>


'Method > CG' 카테고리의 다른 글

Apophysis (software)  (0) 2007.12.27
플래시 클럽  (0) 2007.12.22
Blender tutorials  (0) 2007.12.03
영화 <Star Wars> Geonosians 캐릭터 디자인  (0) 2006.10.03
영화 <괴물> artwork  (0) 2006.09.21
posted by maetel
2006-04-04 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

Basic Processing 2

7:00 ~ 7:20     몸풀기
이전 시간에 내준 숙제를 2명 정도 발표해본다. 동기부여는 충분히 되었습니까?
7:20 ~ 7:50     심화된 프로세싱 소개
processing.org 사이트 안에서, 그리고 그와 관련된 링크를 따라 함께 항해해본다. 어쩌면 슬쩍보고 지나쳤을 수 있는 것들에 대한 재발견. 필연적으로 혼자 공부해야 되는 시간이 올 때 의지가 되는 internet 상의 프로세싱과 관련한 많은 자료들.
7:50 ~ 8:00     쉬는 시간
8:00 ~ 8:20     프로세싱 설치.
안되는 사람은 정말 안되는, 프로세싱 설치하기와 관련한 꼭 피해가야 하는 pitfall들. FAQ & Discourse 활용하기.
8:20 ~ 9:00     프로세싱 시동.
가장 간단한 명령어들 소개와 노트북을 준비한 사람들은 직접 따라해 볼 수 있는 시간. 이상과 현실이 사정없이 충돌해 버리는 충격적인 경험.
연습~연습~연습의 중요성.
***준비물 : 여건이 되는 사람은 노트북.



wikipedia  - computer graphics



<Texturing and Modeling: a procedual approach>

assembly.org

cfxweb

Ken Perlin - perlin noise

www.singlecell.org/singlecell.html

www.pcho.net

acg.media.mit.edu - John Maeda

<Design by Numbers> 책, 애플리케이션 <- 프로세싱의 전신
<Creative ...>

generative algorithm -> artificial life

Karl Sims

www.sodaplay.com


terry winograd /wirograd

society of mind
alan kay

siggraph
sigchi
CSL - sony
Merl - Mitzbishi



- ref.

epicure.graffity.net/things/p5

processingblogs.org

www.shiffman.net/teaching/the-nature-of-code

ocw.mit.edu

flight404.com

www.quasimondo.com

www.codetree.org

complexification.net


Ted Chiang <이해> <72 글자>



posted by maetel