블로그 이미지
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

번역서: 시작하세요! 아이폰 3 프로그래밍: IPHONE SDK를 이용한 아이폰 개발

원서: More IPhone 3 Development: Tackling IPhone SDK 3  by Dave Mark, Jeff LaMarch
번역서: MORE 아이폰 3 프로그래밍   (IPHONE SDK 3 집중분석)


http://iphonedevbook.com/


posted by maetel
2010. 10. 10. 00:52

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

아이폰 어플리케이션 제작 워크숍: Preparation and Practice
강사: 오재혁
시간: 10년 10월 8일부터 총 10회, 금요일 오후 7시 30분 ~9시 30분
수강료: 300,000원



강좌 개요
iPhone의 매력은 사용 경험에 기반한다. 일상의 한 부분에 퍼즐 조각처럼 들어맞는, 어플리케이션을 사용하며 얻는 만족감은, 주변에서 쉽게 확인할 수 있다. 하지만, iPhone 플랫폼의 매력은 사용에 한정되지 않는다. iPhone 어플리케이션 제작은 더욱 농밀하고 치명적인 경험 기회를 제공한다. 직접 제작한, 자신만의 표현을 간직한 어플리케이션을, 전 세계에 배포할 수 있고, 그것을 매개로 소통할 수 있다는 가능성은, 제작자가 되기 위한 노력을 상쇄하고 남을 만큼의 가치를 제공한다.

본 강좌는 iPhone 어플리케이션 제작의 경험을 같이 하고자 하는 사용자를 대상으로 한다. 어플리케이션 제작을 위해 알아야 할 지식들을 살펴보고, 전반적인 기능을 연습해본다.

* 필요한 준비 사항
: 수강을 위해서는 Snow Leopard (Mac OS X 10.6.x) 이후 버전이 설치된 Mac 과 iPod Touch 혹은 iPhone이 필요합니다.



강사 소개
오재혁 / 프로그래머
서울대학교에서 컴퓨터공학을 전공하였으며 다수의 인터랙티브 설치 작업을 제작 및 지원해왔다. 현재 프리랜서로 설치 제작 및 team Gurunun 에서 아이폰 어플리케이션 제작에 주력하고 있다.



강좌 계획

1강: iPhone Framework
- iPhone SDK 내용 전반을 훑어본다.
- Xcode (어플리케이션 제작 환경) 사용법을 익힌다.
- SDK 에서 제공하는 template project 에서 간단한 어플리케이션을 만들고, 실행해본다.

2강:Objective-C, Cocoa
- Objective-C, Cocoa 의 역사, 특징을 이해한다.
- iPhone Application Project의 구성을 살펴본다.
- iPhone SDK 에서 원하는 부분을 찾아 사용하는 법을 배운다.

3강: Primitive Interface
- 기본적인 UI 컨트롤 (Button, TextField, Slider, Switch, Progress View, … ) 사용법을 익힌다.

4강: Advanced Interface
- Table View, Navigation Controller 를 사용하여 hierarchical list 를 구성해본다.

5강: Animation
- Core Animation 을 활용하여 UI 컨트롤을 움직여 본다.
- 보다 견고한 Animation 진행을 위한 State Machine 을 구성해본다.

6강: Quartz 2D, OpenGL ES
- Quartz 2D 를 사용한 그리기를 연습한다.
- OpenGL ES template project 를 분석하고, 3D Drawing 의 구성 요소를 이해한다.

7강: Touch, Accelerometer
- Accelerometer 값을 받아들여, 해석, 사용하는 법을 연습한다.
- Touch 입력을 처리하고, Gesture Recognizer 의 구조와 사용법을 이해한다.

8강: Audio
- iPod library 의 음악을 연주하는 법을 알아본다.
- 여러 음원을 동시에 출력하는 법을 알아본다.
- OpenAL 의 기능을 이해하고, 사용해본다.

9강: Advanced Audio
- Audio Queue 를 활용하여, linear PCM 을 출력해본다.
- Microphone 입력을 받아들이는 방법을 알아본다.

10강: Connection
- 웹의 데이터를 읽어들이는 방법을 연습해본다.
- GameKit 을 활용하여 peer-to-peer 통신을 시도해본다.



posted by maetel
2008. 5. 28. 19:25 Techne/문성준: SuperCollider
2008-05-28 물 늦은 다섯 시 @추계음악대학교 전자음악실


EnvGen.kr

SynthDef Syntax

Recording


'Techne > 문성준: SuperCollider' 카테고리의 다른 글

week 3: B. Synthesis I - Envelopes  (0) 2008.05.21
week 2: B. Synthesis I - Modulation  (0) 2008.05.21
week 1: A. Basic  (0) 2008.05.21
SupperCollider  (0) 2008.05.17
posted by maetel
2008. 5. 21. 18:14 Techne/문성준: SuperCollider
B. Synthesis I

3. Envelopes


2008-05-21 물 늦은 다섯 시@추계예술대학교 전자음악실

http://en.wikipedia.org/wiki/ADSR_envelope
The envelope may be a discrete circuit or module (in the case of analog devices), or implemented as part of the unit's software (in the case of digital devices).
When a mechanical musical instrument produces sound, the volume of the sound produced changes over time in a way that varies from instrument to instrument.
A synthesizer's ADSR envelope is a way to tailor the timbre for the synth, sometimes to make it sound more like a mechanical instrument.

사용자 삽입 이미지


- 특별하게 duration에 관한 설정을 하지 않는다면 SC는 합성을 무한히 지속한다.


Line            line generator

Line.ar(start, end, dur, mul, add, doneAction)
Line.kr(start, end, dur, mul, add, doneAction)

Generates a line from the start value to the end value.
start - starting value
end - ending value
dur - duration in seconds
doneAction - a doneAction to be evaluated when the Line is completed. See UGen-doneActions for more detail.

// XLine is usually better than Line for frequency
play({ SinOsc.ar(Line.kr(200,17000,10),0,0.1) });

XLine의 start value가 0이면 안 된다.
XLine            exponential line generator

XLine.ar(start, end, dur, mul, add, doneAction)
XLine.kr(start, end, dur, mul, add, doneAction)

Generates an exponential curve from the start value to the end value. Both the start and end values
must be non-zero and have the same sign.
start - starting value
end - ending value
dur - duration in seconds
doneAction - a doneAction to be evaluated when the Line is completed. See UGen-doneActions for more detail.

play({ SinOsc.ar(XLine.kr(200,17000,10),0,0.1) });

{XLine.ar(0.01, 1, 1)}.plot(1);
// XLine의 start value가 0이면 안 된다.
{Line.ar(0, 1, 1,)}.plot(1);





'Techne > 문성준: SuperCollider' 카테고리의 다른 글

week 4: Envelop Generator in SuperCollider  (0) 2008.05.28
week 2: B. Synthesis I - Modulation  (0) 2008.05.21
week 1: A. Basic  (0) 2008.05.21
SupperCollider  (0) 2008.05.17
posted by maetel
2008. 5. 21. 17:00 Techne/문성준: SuperCollider
week 2
B. Synthesis I

1. Tone generator & argument

많은 종류의 tone generator들을 SC에서는 UGEN(Unit Generator)으로 분류한다.

UGEN(Unit Generator)
http://en.wikipedia.org/wiki/Unit_generator
Unit Generators form the building blocks for designing synthesis and signal processing algorithms in software. For example, a simple unit generator called OSC could generate a sinusoidal waveform of a specific frequency (given as an input or argument to the function or class that represents the unit generator).
ref.
Computer Music: Synthesis, Composition, and Performance
by Charles Dodge and Thomas A. Jerse

unit generator: an algorithm that performs a particular function of sound generation, modification, or combination. It is controlled by parameters obtained from a score or transducer. (438p)

Each unit generator has input parameters and at least one output. Each performs a specific function of signal generation or modification, or the combination of signals. Many music languages express synthesis algorithms in terms of unit generators, using them as the building blocks with which instruments are made. The internal algorithm of each unit generator has been determined and encoded by the music systems programmer. The musician's task is to interconnect the inputs and outputs of the unit generators to achieve an overall synthesis algorithm that produces the desired result. (72p)

ref.
ChucK : Unit Generators Reference
(all)
ChucK : Language Specification > Unit Generators
Unit Generators are function generators that output signals that can be used as audio or control signals.

{Saw.ar}.play
{FSinOsc.ar}.play
{Pulse.ar}.play


Saw            band limited sawtooth

Saw.ar(freq, mul, add)

Band limited sawtooth wave generator.
freq - Frequency in Hertz (control rate).

See also: LFSaw

// modulating the frequency

{ Saw.ar(XLine.kr(40,4000,6),0.2) }.play;

// two band limited sawtooth waves through a resonant low pass filter

{ RLPF.ar(Saw.ar([100,250],0.1), XLine.kr(8000,400,5), 0.05) }.play;

http://en.wikipedia.org/wiki/Sawtooth
A more general form, in the range −1 to 1, and with period a, is
x(t) = 2 \left( {t \over a} - \operatorname{floor} \left ( {t \over a} + {1 \over 2} \right ) \right )

This sawtooth function has the same phase as the sine function.
A sawtooth wave's sound is harsh and clear.


http://en.wikipedia.org/wiki/440_Hz
A440
is the 440 Hz tone that serves as the standard for musical pitch. A440 is the musical note A above middle C (A4).



FSinOsc        fast sine oscillator

FSinOsc.ar(freq, iphase,mul, add)

Very fast sine wave generator (2 PowerPC instructions per output sample!) implemented using a ringing
filter.  This generates a much cleaner sine wave than a table lookup oscillator and is a lot faster.
However, the amplitude of the wave will vary with frequency. Generally the amplitude will go down as
you raise the frequency and go up as you lower the frequency.
WARNING: In the current implementation, the amplitude can blow up if the frequency is modulated
by certain alternating signals.
freq - frequency in Hertz

{ FSinOsc.ar(800, 0.0, 0.25) }.play;

{ FSinOsc.ar(XLine.kr(200,4000,1),0.0, 0.25) }.play;

// loses amplitude towards the end
{ FSinOsc.ar(FSinOsc.ar(XLine.kr(4,401,8),0.0, 200,800),0.0, 0.25) }.play;

http://en.wikipedia.org/wiki/Electronic_oscillator

http://en.wikipedia.org/wiki/Sine_wave


Pulse            band limited pulse wave

Pulse.ar(freq, width, mul, add)

Band limited pulse wave generator with pulse width modulation.
freq - Frequency in Hertz (control rate)
width - Pulse width ratio from zero to one. 0.5 makes a square wave (control rate)

See also: LFPulse

// modulate frequency
{ Pulse.ar(XLine.kr(40,4000,6),0.1, 0.2) }.play;

// modulate pulse width
{ Pulse.ar(200, Line.kr(0.01,0.99,8), 0.2) }.play;

// two band limited square waves thru a resonant low pass filter
{ RLPF.ar(Pulse.ar([100,250],0.5,0.1), XLine.kr(8000,400,5), 0.05) }.play;


ref.
invalid-file

<Band-Limited Pulse Generator> Ed Doering

 
invalid-file

<Arbitrary Band-Limited Pulse Generation for Built-in Self-test Applications> Benoit Dufort & Gordon W. Roberts, McGill University




'Techne > 문성준: SuperCollider' 카테고리의 다른 글

week 4: Envelop Generator in SuperCollider  (0) 2008.05.28
week 3: B. Synthesis I - Envelopes  (0) 2008.05.21
week 1: A. Basic  (0) 2008.05.21
SupperCollider  (0) 2008.05.17
posted by maetel
2008. 5. 21. 15:01 Techne/문성준: SuperCollider
1. SuperCollider 3 개요

- 음악 프로그래밍 언어 (cp. CSound, Max/MSP, PD)
- SmallTalk에 기반,  James McCartney 개발
- 활용: Calculator, Sound Synthesis & Analysis, DSP(Effector), Algorithmic Composition, ...
- 특장점:
    - object-oriented style
    - real-time interpreter
    - 하나의 package 안에서 GUI를 활용한 real-time 제어
    - on-the-fly 프로그래밍
    - OSC (Open Sound Control) protocol 지원
    - 낮은 CPU 점유율

2. SuperCollider 설치
    home: http://audiosynth.com/
    tutorial: http://swiki.hfbk-hamburg.de:8888/MusicTechnology/6
    forum: http://www.newscores.com/scforum/

invalid-file

Computer Music with examples in SuperCollider 3 David Michael Cottle



3. Post Window & Basic Key command
- Post Window: booting 과정에서 로딩되는 라이브러리의 상태를 보여 주며, interpreter의 메시지, 프로그래밍의 에러 등을 보여 준다.
- key command
    enter (return 아님): run
    command + . : stop playing
    command + D : help

4. Basic Syntax
colons: keyword arguments
semi-colons: statement의 끝
commas: list에서 item을 분리할 때 사용
periods: 메시지를 처리할 때 사용

- delimiters:
    parenthes () : argument list를 전달하거나 연산처리에서 사용
    curly brackets {} : function을 정의할 때 사용

5. Basic Synthesis

// week 1

246*456

"hello".speak

rrand(64,127)

3.rand

{SinOsc.ar(440,0,0,1)}.play;

{SinOsc.ar(440,0,0,1)}.scope;

SinOsc.ar(440,0,0,1).play;

{SinOsc.ar(440,0,0,1}.play;



// 5. Basic Synthesis

{SinOsc.ar(440,0,0,1)}.play

(// double click on the inside of any bracket to highlight the code contained within
)

(// select this code within the outer parentheses
// then press the ENTER key on the numberic keypad
{SinOsc.ar(440,0,0,1)
+
Pulse.ar(443,0,6,0,0.05)
}.play
)

{SinOsc.ar(300,0.5)}.scope

{Saw.ar(4000,0.2)}.scope

{Pulse.ar(440,0.6,0,1)}.scope


'Techne > 문성준: SuperCollider' 카테고리의 다른 글

week 4: Envelop Generator in SuperCollider  (0) 2008.05.28
week 3: B. Synthesis I - Envelopes  (0) 2008.05.21
week 2: B. Synthesis I - Modulation  (0) 2008.05.21
SupperCollider  (0) 2008.05.17
posted by maetel
2008. 5. 17. 18:02 Techne/문성준: SuperCollider

'Techne > 문성준: SuperCollider' 카테고리의 다른 글

week 4: Envelop Generator in SuperCollider  (0) 2008.05.28
week 3: B. Synthesis I - Envelopes  (0) 2008.05.21
week 2: B. Synthesis I - Modulation  (0) 2008.05.21
week 1: A. Basic  (0) 2008.05.21
posted by maetel
2008. 2. 10. 22:21 Techne
사용자 삽입 이미지


Casey Reas & Ben Fry
Processing: a programming handbook for visual designers and artists
forword by John Maeda
The MIT Press, 2007


ref.
google Book



Foreword
John Maeda (Allen Professor of Media Arts and Sciences, MIT Media Laboratory)

"people who have a fundamental balance issue in the way they approach the computer as an expressive medium"

"Hybrids that can fluidly cross the chasm between technology and the arts"

"the relentless pursuit of perfecting the bridge that connects the art-mind with the computer-mind"


Preface

"creating interactive and visual work through writing software"

the University of California-Los Angeles
the Interaction Design Institute Iverea
Havard University
Carnegie Mellon University


Casey's introduction

BASIC, Logo, Apple IIe machine, the University of Cincinnati, Adobe's Photoshop and Illustrator, Plaka (a matte black paint), CD-ROM, the Internet, modular systems, real-time processes to generate form/behavior/mediate interactions, the Aesthetics and Computation Group at MIT, fusing traditional arts knowledge with ideas from computer science, views on technology in relation to culture and the history of art, synthesized knowledge from visual culture with knowledge from computer science

I hope this book will act as a catalyst to increase software literacy within the arts.


Ben's introduction

taking things apart, disassembling and comparing the contents of household electronics, "IBM BASIC by Microsoft", "for" loop, graphic design, typography, user interface design, interactive multimedia CD-ROMs, the intersection between design and computation, the Design By Numbers project, pedagogy

One of my personal goals for this project is to facilitate designers' taking control of their own tools.





posted by maetel
2007. 11. 28. 16:46 Techne/Greenberg: Creative Code
Part One: Theory of Processing and Computational Art
Chapter 1: Code Art



algorithmic beauty
an apparant mathematical pattern
intuitive math
a common visual algorithmic literacy
randomization




Casey Reas
Ben Fry
John Maeda

computation; the procedure of calculating; determining something mathemetical or logical methods

The technical innocations of the day most often coincide with parallel developments in aesthetics. Early astrological and calendar systems, across many clultures, combined observed empirical data with richly expressive, mythological narratives as a way of interpreting and ultimately preserving and disseminating the data.

complex algorithmic patterns based upon mathemtatical principles

Qualitative notions of aesthetic beauty are combined with analytical systems for structuring visual data.

Giorgio Vasari
Filippo Brunelleschi
Piero della Francesca
Albert Du''rer
Leonardo da Vinci

Design by Numbers

The core expressive element of computing is at the lower level of computation, most accesible through direct programming.




Computer art history

Egyptian Ahmes Papyrus
Babylonian Salamis tablet (counting board)
Roman hand abacus
suan pan (Chinese abacus)
John Napier - logarithms
Edmund Gunter - pickett circular slide rule

Charles Babbage
Ada Lovelace
Analytical  Engine
 
Konrad Zuse
- Z1
John Atanasoff - Mark 1
ENIAC
UNIVAC
Grace M. Hopper


The higher-level symbolic abstraction, nearer to our natural language, allows the coder to think more naturally and thus gain programming literacy more easily.


Jasia Reichardt [The Computer in Art]

There were times in history when scientists, artists, philosophers, engineers, and so forth were all seen as integrated creative practitioners - not divided solely by their perceived utilitarian value in the marketplace.

Admiral Hopper

Mary Flanagan
    http://maryflanagan.com
RAPUNSEL project
    http://mrl.nyu.edu/rapunsel




Code artists

Ben Laposky
www.dam.org/laposky/index.htm
www.atariarchives.org/artist/sec6.php

    William Fetter coined first the term “computer graphics”.
    “oscillons” waveforms
    analog computer


John Whitney Sr.
www.siggraph.org/artdesign/profile/whitney/nowhitney.html
http://en.wikipedia.org/wiki/John_Whitney_(animator)

    the title sequence for Hitchcock's Vertigo
    <Catalog>
    “harmonic progression”
   

Herbert W. Franke
http://en.wikipedia.org/wiki/Herbert_W._Franke
www.dam.org/franke/index.htm
www.zi.biologie.uni-muenchen.de/~franke/

    speleology (the scientific study of caves)
    Ars Electronica Festival
    [Animation with Mathematica]


Lillian Schwartz
www.lillian.com

    Proxina Centauri, a kinetic sculpture
    1968 Machine Exhibition at the Museum of Modern Art (MOMA), New York
    Computerworld Smithsonian awards
    [The Computer Artist's Handbook]


Harold Cohen
www.kurzweilcyberart.com/aaron/hi_cohenbio.html
www.viewingspace.com/genetics_culture/pages_genetics_culture/gc_w05/cohen_h.htm
http://grandtextauto.gatech.edu/2003/06/17/harold-cohen-on-artist-programmers/

    artificial intelligence
    AARON
    Ray Kurzweil  www.kurzweilcyberart.com


Roman Verostko
www.verostko.com

    Gyorgy Kepes
    Hodos
    Jean-Pierre He'bert
    Ken Musgrave
    "Algorists"


George Legardy
www.georgelegrady.com

    Pockets Full of Memories


Mark Napier
http://potatoland.org

    Shredder
    Digital Landfall
    Feed
    riot


John F. Simon Jr.
http://numeral.com

    art appliances
    Plexiglas


John Maeda
www.maedastudio.com
www.media.mit.edu/people/bio_maeda.html
http://weblogs.media.mit.edu/SIMPLICITY/

    E. Rudge
    Nancy Allen
    Aesthetics + Computation Group at MIT
    Muriel Cooper
    Ron MacNeil
    Physical Language Workshop


Mary Flanagan
www.tiltfactor.org

    The Adventures of Josie True
    The RAPUNSEL project: a multiuser 3D game to teach middle school girls computer programming
    Art Journal
    Wide Angle
    Intelligent Agent
    Convergence
    Culture Machine


Casey Reas
http://reas.com

    the relationship between conceptual art and software art
    Jared Tarbell of Levitated
    Robert Hodgin of Flight 404
    William Ngan of Metaphorical.net
    {Software} Structures


Jared Tarbell
http://levitated.net
http://complexification.net


Ben Fry
http://benfry.com

    Altair 8800
    Computational Information Design
    Valence


Charles Csuri
http://old.siggraph.org/artdesign/profile/csuri/

Joshua Davis
www.joshuadavis.com

Andy Deck
http://artcontext.org

Amy Franceschini
www.futurefarmers.com

Ken Goldberg
http://ieor.berkeley.edu/~goldberg/index-flash.html

Jean-Pierre He'bert
http://hebert.kitp.ucsb.edu/
http://jeanpierrehebert.com/

John Klima
www.cityarts.com/

Mario Klingemann
http://www.quasimondo.com/

Ruth Leavitt
http://dam.org/leavitt/index.htm

Golan Levin
www.flong.com/

Manfred Mohr
www.emohr.com/

Colin Moock
www.moock.org/

Ken Musgrave
www.kenmusgrave.com/

Yugo Nakamura
http://yugop.com/

William Ngan
http://metaphorical.net/

Josh Nimoy
www.jtnimoy.net/

Josh On
www.futurefarmers.com/josh/

Robert Penner
www.robertpenner.com/


Ken Perlin
http://mrl.nyu.edu/~perlin/

Keith Peters
http://bit-101.com/

Amit Pitaru
http://pitaru.com/

Paul Prudence
www.transphormetic.com/

Daniel Rozin
http://smoothware.com/danny/

Karsten Schmidt
http://toxi.co.uk/

Manny Tan
www.uncontrol.com/

Martin Wattenberg
www.bewitched.com/

Marius Watz
http://unlekker.net/

Mark Wilson
http://mgwilson.com/


code-helper
zealots-JohnG
st33d
seltar
TomC
mflux
metaphorz
arielm
fjen
blprnt
flight404
shiffman
toxi
fry
REAS

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 3 - GLUT; geometry; coordinate systems


OpenGL Programming Guide


GLUT API


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
http://www.shiffman.net/teaching/nature/waves/


 Vibration
http://www.lightandmatter.com/html_books/3vw/ch01/ch01.html


 Euler's Theorem
The general displacement of a rigid body with one point fixed is a rotation about some axis. This requires that one eigenvalue equals 1.


 Simple harmonic Oscillation
A simple harmonic oscillator is an oscillating system which satisfies the following properties.

    1. Motion is about an equilibrium position at which point no net force acts on the system.
    2. The restoring force is proportional to and oppositely directed to the displacement.
    3. Motion is periodic.

     Simple Harmonic Motion
    http://en.wikipedia.org/wiki/Simple_harmonic_motion
    * Isochronous


 Harmonic Oscillation

http://en.wikipedia.org/wiki/Harmonic_oscillation


posted by maetel


my preparation for RB study:
 weight vs. mass http://en.wikipedia.org/wiki/Weight
= absolute vs. relative

gravitational force
http://en.wikipedia.org/wiki/Gravitational_force
Earth's gravity http://en.wikipedia.org/wiki/Earth%27s_gravity
    Free fall http://en.wikipedia.org/wiki/Free-fall

     지구의 반지름
    에라토스테네스 (Eratosthenes, 276 BC - 194 BC) http://100.naver.com/100.nhn?docid=110548
        http://en.wikipedia.org/wiki/Eratosthenes
        cf. 에라토스테네스의 체 (Erathosthenes'sieve) http://100.naver.com/100.nhn?docid=716415


     지구의 질량

    ref.
    http://en.wikipedia.org/wiki/History_of_gravitational_theory

        브라마굽타 [Brahmagupta, 598~665?] http://100.naver.com/100.nhn?docid=80291
            http://en.wikipedia.org/wiki/Brahmagupta
 

 force
http://en.wikipedia.org/wiki/Force
Force is defined as the rate of change of momentum with time:    \vec{F} = {\mathrm{d}\vec{p} \over \mathrm{d}t}.
The quantity \vec{p} = m \vec{v} (where m\, is the mass and \vec{v} is the velocity) is called the momentum. This is the only definition of force known in physics (first proposed by Newton himself). If the mass m is constant in time, then Newton's second law can be derived from this definition

http://en.wikipedia.org/wiki/Net_force

Newton’s Laws
제1법칙 - 관성의 법칙
제2법칙 - 가속도, 질량, 힘
제3법칙 - 작용/반작용의 법칙
http://www.lightandmatter.com/html_books/1np/ch04/ch04.html
http://www.physicsclassroom.com/Class/newtlaws/newtltoc.html

dissipative force - friction force, viscious force
gravitational force

momentum

torque <- rotation

stress <- deformation


Viscosity
http://en.wikipedia.org/wiki/Viscosity



 Friction
Hook's Law

spring

pendulum



cf.
http://en.wikipedia.org/wiki/Deformation











posted by maetel


my preparation for RB study:

scalar vs. vector

  vector http://en.wikipedia.org/wiki/Vector_%28spatial%29

  eg. speed vs. velocity http://en.wikipedia.org/wiki/Velocity

      http://www.scienceaid.co.uk/physics/forces/motion.html

  eg. distance (;path) vs. displacement http://en.wikipedia.org/wiki/Displacement_%28vector%29

http://en.wikipedia.org/wiki/Distance


coordinate & origin

  Cartesian coordinate http://en.wikipedia.org/wiki/Cartesian_coordinate_system

  (cf. 일반 상대성 이론에서 stress-energy 이론에 의해 코디네이트에 변형이 가해져 물리적 운동과 코디네이트의 일치가 깨지는 현상 소개) 


s(displacement) vs. v(velocity) vs. a(acceleration)

http://en.wikipedia.org/wiki/Position_vs._time_graph


normalization 

unit vector http://en.wikipedia.org/wiki/Unit_vector

  (ref. normalization (wave fn.) http://en.wikipedia.org/wiki/Normalisable_wavefunction

                   http://en.wikipedia.org/wiki/Normed_vector_space

 



Object Oriented Programming refers to art of breaking down a program into a set of self-contained parts.

Before we can begin to code any simple physics / motion simulation, we need to create a template class to store the data and perform the calculations associated with a vector.


"The term object-oriented design refers to the art of decomposing an application into some number of objects, self-contained application components that work together. The goal is to break your problem down into a number of smaller problems that are simpler and easier to handle and maintain."
-- Learning Java, Neimeyer, Knudsen 


In processing, a class is a "blueprint" or "template" for the creation of an object.

http://itp.nyu.edu/icm/shiffman/week3/index.html



A method is a name for an action. http://codeguru.earthweb.com/java/tij/tij0050.shtml

Method overloading is essential to allow the same method name to be used with different argument types. And although method overloading is a must for constructors, it’s a general convenience and can be used with any method.


instance methods / static methods


An example in the Processing library is an external Java class.
(cp. An internal Java class is a sketch in Processing.)


http://www.shiffman.net/itp/classes/nature/library/Vector3D.java

http://www.shiffman.net/teaching/nature/library/


Access Level  to Members of a Class - public, private, protected, or package-private (no explicit modifier)

http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html



ref.

Kinematics 운동학: 운동의 원인과는 상관없이 물체의 움직임만을 분석
http://en.wikipedia.org/wiki/Kinematics


the html version of Newtonian Physics, by Benjamin Crowell
http://www.lightandmatter.com/html_books/1np/ch03/ch03.html


Galileo Galilei

http://en.wikipedia.org/wiki/Galileo_Galilei

http://www.physicsclassroom.com/




hellomotion http://www.shiffman.net/itp/classes/nature/week02_s06/motion101/hellomotion.pde


boolean (<-Thing에서의 if) <= "flag"

http://en.wikipedia.org/wiki/Boolean


keyword (/reserved word 예약어) - eg. width, height, PI 


constructor (생성자)


NaN = Not a Number (숫자가 아닌 )


HeadFirst Java

2 - 객체: constructor(생성자), method(함수), property(변수, 객체)

cf. instance


Head 2 - 클래스와 객체



posted by maetel
2006. 9. 21. 19:07

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2006-05-30 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

11. 프로세싱과 와이어링

이재곤



Jim Cambel

SMD (in LED)

James 클라 @NYU

LED를 MicroController와 함께 조명 시스템 구축

AchiGram

2족 보행로봇/RC모형에 들어가는 방향 조절 기능의 서브 모터

MC, felxibility sensor, bluetooth, PIC


+++



sensor -input-> micro-controller -output-> actuator

wiring - 8bit CPU 16
Arduino - wiring에 파생, 간략화한 것
BX-24 - 공대에서 기존에 써 왔던 복잡한 MC

<-input/output-> computer

processing, java, C++, Director, MaxMSP
(serial port를 통해 통신)


* transducer - 에너지의 형태를 전환시켜 주는 장치
eg. sensor, actuator


sensor
빛- CdS, 포토 다이오드, 포토 트랜지스터
소리/진동 - 마이크, 압전 소자(피에조 소자)
온도 - thermistor
가스- 메티놀, 에티놀, 오존
거리 -초음파 거리 센서, 적외선 거리 센서
압력/무게 - 압전 소자, 압력 센서
자기 - 홀 센서, 리드 스위치
위치, 속도, 회전 - 틸트 센서, 가속도 센서, 자이로 센서, 엔코더(볼마우스 안의 바퀴-회전 방향/수 계산, 잉크젯 프린터 안의 잉크와 노즐의 움직임을 통해 위치 측정)), GPS
인체 - 터치 센서 (미세 전류 -> 정전용량 방식)
기타 - RFID (카드 한 장 당 2-3천원, 콘트럴로의 가격도 많이 저렴화), Bluetooth


actuator
빛- 전구, LED, EL(굉장히 얇게 만들 수 있음. 소재가 분말 형식이므로 도포로 쓸 수 있어 flexible한 디스플레이가 가능.
eg. EL wire라는 빛을 내는 실 형태도 있음.)
소리/진동 - 스피커, 압전 소자
온도 - 히터

자기- 코일, 자석
위치/속도/회전- 모터(DC 모터- 속도가 빠르나 컨트롤이 까다로움), 서브 모터(컨트롤이 용이. 정확한 각도 만큼 회전/이동 후 정확히 정지 가능), 스페팅 모터(펄스로 움직여 신호를 한 번 줄 때마다 정확히 해당 정도만 회전하므로 속도도 조정 가능)




i/o board
- digital i/o * 40 - switch/LED
- analog input * 8
- analog output * 6 (PWM으로 표기)
- usb


전압 = 저항 X 전류
0=off=LOW=0V
1=on=HIGH=+5V



디지털 입출력
pinMode(pn,mode)
digitalRead(pn)
digitalWrite(pn, value)

0~39번 핀의 입출력 모드 설정
신호 입력/출력 (HIGH/LOW)


>> 아날로그 입력(10bit)
신호 입력(0~1023)

>> 아날로그 출력(8bit)
신호 출력(0~255)

>> 기타
delay() : 일정시간 실행정지(밀리세컨드 단위로 설정)



> push switch

- 가변저항 사용시 그 저항 범위와 유사한 고정저항을 달아 주면 된다.

- felx sensor - 2-4만원

- 서브 모터 - 펄스의 폭에 따라 회전 정도가 정해짐. 전압을 많이 먹으므로 어댑터가 필요하다.
회로의 동작 속도와 프로그램이 입력하는 신호의 속도 보다 느린 경우가 많으므로 delay등의 명령어를 통해 속도를 맞추어 주어야 한다.


> relay
- 작은 전압(리모컨 or 대기전압)으로 큰 전압(TV 등)을 조정할 때 사용.
- 안에 전자석과 역학적 스위치가 들어 있다.
- MC 회로와 별개의 전원을 쓴다.

> RS232c (usb 포트)
외부 장치와의 통신을 가능하게 함

posted by maetel
2006-05-23 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

10. 프로세싱과  vision tracking 2

최승준

실제 작품을 제작할 때 가장 많이 다루고자 하는 실시간 영상처리 기법을 다루기 위해 근간이 되는 픽셀 연산 및 프레임 버퍼(Frame Buffer) 간에 이루어지는 연산 기법들에 대한 소개를 하고, 비전(Vision) 처리를 위해 프로세싱 코드를 어떻게 디자인 하는지 등에 관한 꼭 알아두어야 하는 내용을 간단한 작품을 제작하면서 익히도록 한다.

참고문헌
http://www.setpixel.com/author/?ID=setpixel


선행과제 - 웹캠으로 연결하기
http://moovl.com/

http://llk.media.mit.edu/projects/summaries/scratch.shtml

http://www.viscuit.com/

http://www.squeak.org/



JAD를 이용하여 숨겨진 코드를 decompile하여 공부 후 응용

posted by maetel
2006-05-16 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

최승준

9. 프로세싱과 비전 트랙킹 1

플레이스테이션 2의 아이토이(EyeToy)란 게임을 접해본 일이 있을 것이다. 게임뿐만이 아니라 컴퓨터 비전(http://en.wikipedia.org/wiki/Computer_vision)은 미디어 아티스트에게도 각광을 받는 기법이다. 첫 강좌에서는 컴퓨터 비전을 다루기에 앞서 이를 잘 이해하기 위해 꼭 알아두어야 할 빛, 색, 눈에 대한 과학적인 이야기로부터 시작한다. 이어서 컴퓨터 비전에 대한 전반적인 소개 및 그래픽 작업을 하면서 많이 접할 수 있는 몇 가지 알고리즘(이미지 프로세싱 기법 등)에 대한 소개를 프로세싱 시연을 통해서 다루고, 프로세싱에서 컴퓨터 비전을 구현하기 위해 꼭 준비해야 하는 것들에 대해 알아보고자 한다.



http://www.cs.princeton.edu/%7Etraer/physics/

http://hyperscore.com/

http://hanmiu.com/i/


 Image Processing

R, G, B => 2^(8*3)=2^24=2  : 24  bit

32bit:  2^32

http://incubator.quasimondo.com/

image distortion through vertex control
http://incubator.quasimondo.com/processing/rubber_screen.php

file://localhost/Applications/Processing%200115/reference/copy_.html


Convolution Filter



http://processing.org/faq/bugs.html#video



posted by maetel
2006-05-09 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

8. 시각 예술가를 위한 물리

최승준

수학과 물리 같은 순수과학에 대하여 전공자이던 아니던 간에 누구나 어떤 외경(畏敬)을 갖는 것 같다. 들어가면 들어갈수록 어려운 것은 분명한 사실이나 쉽게 생각하면 이 역시 생활의 발견일 수 있다. 당신이 상식적으로 알고 있는 어떤 현상에 대해 잘 설명할 수 있으면, 이론서를 참고 하지 않더라도 당신만의 세계에서 통용되는 물리법칙을 만들어 내는 것이 가능함을 Processing을 통해 시연한다.
현대의 게임 콘솔은 GPU(Graphics processing unit)뿐만이 아니라 PPU(Physics processing unit)를 탑재하기 시작했다. 실제 세계의 자연스러운 움직임을 표현해내기 위한 내용을 다루는 것이다. 여기에는 ODE(Open Dynamics Engine) 등의 좋은 예가 있다. 프로세싱의 툴을 사용해서 우리가 실제 사용해 볼 수 있는 것에는 무엇이 있으며, 질량, 속도, 가속도, 운동량, 에너지 등의 개념이 이야기하는 것이 무엇인지, 어떻게 써야 하는지 등을 알아보는 입문의 단계로서, 앞서 다루었던 다양한 수의 흐름이 보다 실재감을 가지는 형태로 바뀌는 경험을 해볼 수 있을 것이다.

참고문헌
레오나드 쉴레인 지음, 김진엽 옮김, [미술과 물리의 만남], 국제
루돌프 아른하임 지음, [엔트로피와 예술], 전파과학사
http://www.ode.org/
http://www.shiffman.net/teaching/the-nature-of-code



GPU = Graphic   Unit
PPU = Physical Process Unit

GDC = Game Developers Conference 2006

PhysArkitus

ODE

AGEIA - PhysX

Newton Dynamics 

SDK = Software Develop Kit


ref.
<직관 수학>

posted by maetel
2006-05-02 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

7. 프로세싱과 인터랙션 (2)

성기원

ref.
이론: 미디어와 디자인의 수사학적인(Rhetoric) 관점
실기: 시간함수로 창조하는 나만의 시계
http://sidi.hongik.ac.kr/~ipp/




http://processing.org/reference/PFont.html

posted by maetel
2006-04-25 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

6. 프로세싱과 인터랙션 1  

성기원
key1sung@kaist.ac.kr

홍익대 시각디자인학과와 카이스트 산업디자인학과를 졸업했고, HCI2004 학회에서 우수논문상과 한국디자인학회에서 학술대상을 수상하였다. 홍익대 시각디자인학과, 영상대학원, 연세대 영상대학원에서 프로세싱과 인터페이스 디자인 수업을 강의해왔고, 번역과 저술을 하고 있다.


디자인의 패러다임이 변화함에 따라 시각 디자인의 역할이 정보를 알리고 전달하는 과거의 수동적인 기능에서 정보를 경험하고 선택하는 적극적인 기능으로 진화되고 있다. 이러한 네트워크 시대의 인터랙션 디자인은 오늘날 디자이너들에게 전통적 개념에서 탈피한 창조적인 사고와 논리적인 프로그래밍 능력, 그리고 인터페이스 디자인과 사용성 분석에 대한 지식을 절실히 요구하고 있다.
본 수업의 목적은 디지털 시대가 요구하는 창조성과 논리성을 개발하고 효과적인 인터랙션 디자인과 커뮤니케이션 능력을 훈련하는 데 있다. 이 수업에서는 전달하는 매체가 바뀜에 따라 그 컨텐츠에 미치는 영향과 변화를 개념적으로 공부하고, 그것을 직관적으로 경험하고 디자인하게 될 것이다. 이 수업을 통해 학생들은 전통적인 표현도구인 붓과 연필의 한계를 보완할 수 있는 뉴미디어를 디자이너의 표현도구로서 자유롭게 활용할 수 있을 것이다.

이론: 칸딘스키의 점선면, 추상예술, 그리고 한국성과 정체성
실기: 삼각함수를 이용한 기하학적인 인터랙션



Lo-Tech / Hi-Touch


> History

- 1999 xD_1 John Maeda
: Design by Numbers

- 2003 0707-11 xD_5 Casey Reas (미대 기반)
: Java 기반, open source, 교육용

: Next Design generation(?)
한국 SK본사 빌딩 12층에서 ICE 로이 해밀턴과 함께 강의
(삼성전자 제이 리? 미디어랩 졸업)

- 2003 1211-16 xD_6 Peter Cho
# 아이디어는 그림으로 그려서 프리젠테이션하는 연습을 들여라.

- 2004 0305-0611 홍익대 시각디자인과, Computing Design

- 2004 0902-1209 홍익대 영상대학원 Interactive Graphics 1+2
:카이스트 남택진 교수, 연대 김영수 교수

- 2004 0911- 아트센터 나비 Interactivity & Practice

- 2004 1113 서울 홍익대 정보통신센터 Q동 9층

- 2004 1217 서울 아트센터 나비 21층 회의실 C2

- 2005 0811 대전 카이스트 산업디자인학과 3층 세미나실


(진로 모색?
# 교수로서의 활로?
# 양민하씨처럼 인터랙션 디자인 회사 창업?
# 인터랙티브 광고 - 영화 마이너리티 리포트
# 인터랙티브 작가 - 상업적으로 판매 - bitform)
bitform서울 - NYU 졸업 이훈송(?))



> computing | design

computation | aesthetic : 수 |  미
-> 디자인을 컴퓨터(이진법 수)로 표현한다.

# 명인이란? 자신이 도구를 만들어 쓰는 사람
: 주어진 (심지어 통일된) 인터페이스에 종속되면 개성이 없어진다.
eg. 카일 크라우제?
eg. 존 놀, 토마스 놀 - 포토샵 제작

numbers | beauty

design by numbers

# 목표
1. 코딩, 함수보다 내용, 철학이 중요하다.  
2. 수학과 자연은 밀접하다.
3. 한국성의 구현: 라이프니츠가 동양의 음,양을 보고 영감을 얻어 2진법을 개발


이성 | 감성 :  수학 | 미분 :  양쪽 두뇌로 디자인하기
좌뇌 | 우뇌 :  분석 | 종합 :  논리적 생각 | 직관적 느낌


> Brain

- Nerve Cell 신경세포 90%, Basal Cell 지주세포 10%
- whole-Brain Learning


> face+action+face = interface

<기술복제시대의 예술작품> 발터 벤야민
: 인간이 상호간 대면 없이 기계를 매개로 소통한다.
: '아우라'가 사라진 복제(모사)가 엉클어져 있는 원본보다 낫다.
=> 기계가 없어지면 관계가 사라지게 되었다.

<시뮬라시옹> 장 보드리야르
: '접속(Log-in)한다, 고로 나는 존재한다.'

<저자의 죽음> 롤랑 바르트
: 만든 사람보다 사용하는 사람들이 더 위대하다.
: 사용자를 알지 않고서는 디자인이 불가하다.

<시지각 프로세스> 루돌프 아른하임 Rudolf Arnheim
- Eyegaze HW/SW
- Gestalt Theory
0: 보이는 것을 보는 것과 보고 싶은 것을 보는 것이 차이.
1: 단순성
2: connectivity
Illusion : 착시
eg.  적절한 이미지맵을 통해 사용자가 자연스럽게 메뉴트리를 따르도록 리드할 수 있다.

자극(정보) -(확산적 및 수렴적 탐색)-> 응시 -(시지각 사고 visual thinking : Gestalt theory)-> 해석 -(인지적 사고)-> 평가 -(문제 분석)-> 판단 -(해결 제안)-> 계획->선택->실행

정보처리 과정>
평가의 과정: 외부상태 지각 > 지각된 것을 해석 > 해석된 것을 평가 > 목표 설정
실행의 과정: 목표 설정 > 의도 형성 > 실행 순서 계획 > 실행


http://sidi.hongik.ac.kr/~ipp/

> 점선면+추상미술: 조형언어의 기본, 조형적 유희
ref.
<디자인의 개념과 원리> 찰츠 왈쉬레거, 안그라픽스
<점선면> 칸딘스키, 열화당 미술책방
<추상미술의 역사> 미진사 추상미술과 지의 자아, 인간사랑

<우리문화의 모태를 찾아서>

<3일만에 읽는 수학의 원리> 고바야시 미치마사, 서울만학사
사고력을 키우는 수학책> 오카베 츠네하루, 을지외국어
디지털이다
디지털 시대의 문화예술> 최혜실 엮음, ,문학과 지성사


C를 공부하라!


이세옥 영상디자인 석사1학기
sayok.aye@gmail.com

posted by maetel
2006-04-18 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

5. 시각 예술가를 위한 수학

최승준


자연은 수학으로 디자인 되었다는 말에 감탄하며 동의하기는 쉽지만, 막상 그러한 사실을 알고는 있더라도 직접 이를 응용해 무언가를 해보는 것은 그리 쉽지 않다. 게다가 이는 C, C  , JAVA 등 프로그래밍 언어를 잘 알고 그 응용을 익숙하게 할 수 있다고 해서 바로 되는 일 역시 아니다.
컴퓨터 그래픽스나 인터랙티브 또는 미디어 아트에서 사용되는 기술의 상당 부분은 수학을 빼놓고서는 말할 수 없다. 때문에 상당수의 사람들이 벽에 부딪히게 되곤 한다. 그렇다고는 해도 컴퓨터 그래픽스에서 사용되는 수학은 쉽게 보여질 수 있다는 장점이 있고 게다가 Prcocessing은 이를 보여주는 게 무척 쉬워 탁월한 프로그램이다. '프로세싱으로 인쇄원고 만들기'에서 벡터 드로잉에 해당하는 내용이 다루어졌다고 한다면, 이 과정에서는 Texture를 수학적으로 짜는 방법을 Pixar의 Renderman에서 사용되는 Shading Language의 쉬운 응용을 통하여 경험해 볼 것이고, 자연선택(natural selection)이 아닌 미학적 선택(aesthetic selection)에 의해 펼쳐지는 세계를 볼 수 있게 될 것이다.
고대로부터 현대에 이르기까지 수많은 사람들이 수학의 아름다움에 매료된 이유를 직접 체험해 보기 바란다.

참고문헌
마이클 슈나이더 지음, 이충호 옮김, [자연, 예술, 과학의 수학적 원형], 경문사
David S. Ebert 외 지음, [Texturing and Modeling : A Procedural Approach], Morgan Kaufmann
http://www.genarts.com/karl/
https://renderman.pixar.com/products/tools/renderman.html



> signal 신호

sine/ cosine wave

eg.
1) 명암 => pattern
2) x,y 좌표 => 움직임
3) sodaplay
4) signal -> sound (sonic wave)


> Function 함수

eg.
1) line (x0, y0, x1, y1)
2) y=x  <=> f(x)=x


* pixel = picture cell (or) picture element

* scan line

pixel은 색의 값(RGB)과 투명도 값(A)을 가짐

* frame buffer


P Image.Pixels (좌표값) => color (RGB A)

void Add (int a)   <- fn을 정의
{
int b=4;
int c=b+a;
}

int Add(int a)
{
int b=4;
int c=b+a;
return c;
}


color SL1(float s, float t) //gradation
{
  float v= sin(s*PI)
  return color(v);
}


프로세싱에서 원좌표계 인식가능한가요?
(r,theta)
그럼 SL2와 동일한 결과 가능한가?



smoothstep




posted by maetel