notes:projects
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
notes:projects [2010/03/08 09:29] – syang | notes:projects [2010/03/31 13:53] (current) – mguthri2 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ~~DISCUSSION|Projects Notes Page Discussion~~ | ||
+ | ~~NOTOC~~ | ||
+ | <WRAP centeralign bigger>< | ||
+ | <WRAP muchbigger> | ||
+ | Course Notes & Documentation</ | ||
+ | ===== Course Information ===== | ||
+ | <WRAP round box 96% center bggrey> | ||
+ | ^Instructor: | ||
+ | ^Faculty E-mail: | ||
+ | ^Mailing List: | ||
+ | ^Class Meeting: | ||
+ | *[[http:// | ||
+ | </ | ||
+ | |||
+ | ===== Rules ===== | ||
+ | |||
+ | * Never use a form of a word in its own definition | ||
+ | * Use external hyperlinks only as citations | ||
+ | * Content first, then formatting | ||
+ | * There is only one empire, ours | ||
+ | |||
+ | ===== Theme ===== | ||
+ | click on a topic in the concept map | ||
+ | {{map>: | ||
+ | [[.projects/ | ||
+ | [[.projects/ | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects/ | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | [[.projects# | ||
+ | {{<map}} | ||
+ | |||
+ | ==== make ==== | ||
+ | moved to new page; select from map or add comments here | ||
+ | |||
+ | ==== Python ==== | ||
+ | moved to new page; select from map or add comments here. | ||
+ | |||
+ | ==== O.S. ==== | ||
+ | {{: | ||
+ | Shot of board from class. | ||
+ | |||
+ | Lab46 - machine name (host) | ||
+ | |||
+ | lab46.corning-cc.edu - (host).(domain name) | ||
+ | |||
+ | lab46 is running Debian OS witch is a distribution of GNU/ | ||
+ | |||
+ | Other OS: freeBSD, Plan9, Solaras | ||
+ | |||
+ | 1. CLI - Command line interface | ||
+ | |||
+ | 2. GUI - Graphical user interface | ||
+ | ==== animation ==== | ||
+ | This is a work in progress: | ||
+ | |||
+ | Animation is the rapid display of a sequence of images of 2-D or 3-D artwork or model positions in order to create an illusion of movement. Animation is used to tell a story. Music, sound effects, and voice acting can be added to aid the story along. | ||
+ | |||
+ | There are different types of animation: 2-D animation (Traditional animation), 3-D animation (computer generated animation also called CGI animation which stands for computer generated imagery), claymation, and stop motion. While these may all be different, all of them will need some type of storyboard. A storyboard is a series of illustrations or images displayed in sequence to tell a direction of the story. These images include sketches, notes on the story/ | ||
+ | |||
+ | -2-D animation is the oldest and historically the most popular form of animation. This traditional or classical animation is the hand drawn animation that most cartoonists use. Each frame is drawn by hand, the characters and the background. A frame, you can say, is like a piece of paper where you draw on. When doing an animation you would first need to create a storyboard. After that its time to start drawing the actual characters and background. Traditionally you would draw the characters on cells and place them on top of each other but now most animation is done on computers. After everything has been drawn, the next thing to do is music, sound effects, and voice acting. There are many animation programs out there and anybody can make their own cartoons. The combination of Microsoft Paint and Microsoft Windows Movie Maker can make a simple effective animation, and they are both free programs. | ||
+ | |||
+ | -3-D animation (3D CGI or computer generated imagery) is the art of creating moving images with the use of computers. CGI is the digital successor to stop motion animation of 3D models and 2D's frame by frame animation. A big difference between 2D and 3D is that 3D objects/ | ||
+ | |||
+ | -Stop Motion is an animation technique used to make a physically manipulated object appear to move on its own. To do this you would have to have a camera and a video software program, like windows movie maker. To have something move you would have to move it a little, take a picture, then move it again, take a picture, and so on until you have your animation done. You then take the pictures into a video software program and put them in order. | ||
+ | | ||
+ | |||
+ | ==== story ==== | ||
+ | Every story serves a purpose. Those purpose is convey to an idea or point that you might want to share with the world. Most simple stories begin with a villain (the bad guy), the honorable (good guy), and likely neutral characters to build the plot and theme. The plot of the story tells a tale and leads the participant (reader, listener, gamer) through the idea or point of the story, as laid out by the story' | ||
+ | |||
+ | Here are the 5 golden rules to create a flawless story: | ||
+ | - define the purpose of your story, game, idea or point. | ||
+ | - plan out the plot and characters. | ||
+ | - define the conflict. | ||
+ | - decide how it should end and how it should serve your purpose? | ||
+ | - does the story fit in your deisgn. | ||
+ | - < | ||
+ | |||
+ | Below is a short and simple expample to help you begin: | ||
+ | |||
+ | Let's say the setting of the story is in space, and the villians of the story are aliens. | ||
+ | |||
+ | Here is an expanded example: | ||
+ | |||
+ | Let's say that another alien race happened to converge on your current battle in progress. | ||
+ | |||
+ | While highly simplistic, this short story line creates a tale that can be expanded many different ways. After you've set a solid foundation, begin to add to the cast of characters. | ||
+ | |||
+ | “Remember, | ||
+ | |||
+ | “If you want make an apple pie from scratch, you MUST create universe first” -Steven Yang | ||
+ | |||
+ | That above story would be a great idea for creating a game, but the whole story as a group we did in class is little bit more cheesy. | ||
+ | |||
+ | We can extend these principles to our story in projects class. | ||
+ | |||
+ | We define the "good guy" as the knowledge that we hold and understand; and the " | ||
+ | |||
+ | ==== modeling ==== | ||
+ | |||
+ | Please read under the blender for full modeling instructions | ||
+ | |||
+ | ==== rendering ==== | ||
+ | {{: | ||
+ | {{: | ||
+ | Shots of board from class. To be replaced with text. -Joe | ||
+ | |||
+ | processes gen image from code via computer program | ||
+ | |||
+ | *definition - | ||
+ | *when to use - | ||
+ | *where it takes place - | ||
+ | *why - | ||
+ | *where is info coming from - | ||
+ | *what programs - | ||
+ | *what does the info look like - | ||
+ | *what is the process - | ||
+ | *how long does it take - | ||
+ | *whats a model- | ||
+ | |||
+ | (1 or more machine) | ||
+ | |||
+ | server - | ||
+ | * hardware, software (computer) | ||
+ | * process requests - wait (looping) for input to satisfy (always running) | ||
+ | client - | ||
+ | * make request (come and go) | ||
+ | ---- | ||
+ | ive been doing a bit of reading on sockets and threading and stuff like that in python so i figured i would jot some of that down | ||
+ | < | ||
+ | #! / | ||
+ | #Simple Server | ||
+ | import socket | ||
+ | file = " | ||
+ | while 1: | ||
+ | #create the socket an internet socket that uses tcp rather than udp (DGRAM) | ||
+ | tcpsocket = socket.socket(socket.AF_INET, | ||
+ | |||
+ | #get hostname and ip address of computer | ||
+ | #could just use " | ||
+ | hostname = socket.gethostname() | ||
+ | ip = socket.gethostbyname(hostname) | ||
+ | |||
+ | #Bind socket to ip address and port number | ||
+ | serversocket.bind((ip, | ||
+ | |||
+ | #start listening for requests on port argument tells how many hosts | ||
+ | serversocket.listen(1) | ||
+ | |||
+ | #accept connections this will block until a request comes in | ||
+ | clientsocket, | ||
+ | #open file to send | ||
+ | file = open(file, " | ||
+ | |||
+ | #read file | ||
+ | data = file.read() | ||
+ | #close file | ||
+ | file.close() | ||
+ | #send the data to client | ||
+ | clientsocket.send(data) | ||
+ | clientsocket.close() | ||
+ | |||
+ | </ | ||
+ | |||
+ | < | ||
+ | #! / | ||
+ | #simple client | ||
+ | |||
+ | import socket | ||
+ | #define msg | ||
+ | def msg(): | ||
+ | print " | ||
+ | print " | ||
+ | |||
+ | print "File Retriever" | ||
+ | filename = " | ||
+ | #GET IP | ||
+ | ip = raw_input(" | ||
+ | port = 5000 | ||
+ | |||
+ | #create socket | ||
+ | clientsocket = socket.socket(socket.AF_INET, | ||
+ | #connect or start listening to port ip | ||
+ | clientsocket.connect((ip, | ||
+ | print " | ||
+ | #call msg | ||
+ | msg() | ||
+ | #get the file from server | ||
+ | data = clientsocket.recv(1000) | ||
+ | #create write file | ||
+ | file = open(filename, | ||
+ | file.write(data) | ||
+ | file.close() | ||
+ | print "File Obtained!" | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== file structure ==== | ||
+ | ==== architecture ==== | ||
+ | ==== open source ==== | ||
+ | Do not mixed open source with freeware they both are similar but acually share a great difference. There are two types of open source; open source and open source lisence. | ||
+ | |||
+ | The basic idea behind open source is very simple. When programmers either read, redistribute, | ||
+ | |||
+ | ==== software ==== | ||
+ | Software, being a broad topic, needs to be broken down. So here are a few questions to point us in a general direction. | ||
+ | *What is software? | ||
+ | *How is software developed? | ||
+ | *What tools are used? | ||
+ | *Development environments/ | ||
+ | *Educational Resources | ||
+ | *Where to start? | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== hardware ==== | ||
+ | Hardware can be defined as anything on a computer that you can phyiscally touch. | ||
+ | |||
+ | The miniumal spec Hardware for blender is 300 MHz CPU,128 MB Ram, 1024 x 768 px Display with 16 bit color, 20 MB free hard disk Space, 3 Button Mouse, and Open GL Graphics Card with 16 MB Ram | ||
+ | |||
+ | The good spec Hardware for blender is 2 Ghz dual CPU, 2 GB Ram,1920 x 1200 px Display with 24 bit color,3 Button Mouse, and Open GL Graphics Card with 128 or 256 MB Ram | ||
+ | |||
+ | The production spec Hardware for blender is 64 bits, Quad core CPU, 8 GB Ram, two times 1920 x 1200 px Display with 24 bit color, 3 Button Mouse + tablet, and Open GL Graphics Card with 768 MB Ram, ATI FireGL or Nvidia Quadro | ||
+ | |||
+ | ==== assemblers ==== | ||
+ | ==== interpretters ==== | ||
+ | ==== compilers ==== | ||
+ | ==== build systems ==== | ||
+ | |||
+ | |||
+ | ==== OpenGL ==== | ||
+ | OpenGL (**Open** **G**raphics **L**ibrary) is a standard specification defining a cross-language, | ||
+ | |||
+ | Another easy way to put OpenGL term is that to draw stuff in 3D. It can also be used for 2D drawing, but this site doesn' | ||
+ | |||
+ | In order to understand what is OpenGL, you need to know what API is. An API provides a defined method for developing applications software. Remeber there are vast information about API and OpenGL for how it works. | ||
+ | |||
+ | |||
+ | Here is some examples for OpenGL: | ||
+ | |||
+ | so here is how you make a white 2D cube (by the way this is python script, not C/C++) | ||
+ | |||
+ | < | ||
+ | import Blender | ||
+ | from Blender.BGL import * | ||
+ | from Blender import Draw | ||
+ | |||
+ | then add | ||
+ | |||
+ | def show_gl_samp(): | ||
+ | pass | ||
+ | |||
+ | |||
+ | def ev( evt, val ): | ||
+ | if evt == Draw.ESCKEY or evt == Draw.QKEY: | ||
+ | Draw.Exit() | ||
+ | |||
+ | |||
+ | Draw.Register( show_gl_samp, | ||
+ | |||
+ | Now "here is where the OpenGL comes in" | ||
+ | |||
+ | def show_gl_samp(): | ||
+ | # clear out the color buffer and give it a white background. | ||
+ | glClearColor(0, | ||
+ | glClear(GL_COLOR_BUFFER_BIT) | ||
+ | |||
+ | and finally add | ||
+ | |||
+ | # Draw a white rectangle. | ||
+ | glColor3f(1.0, | ||
+ | glRecti(40, | ||
+ | |||
+ | so if you put everything together you'll have this: | ||
+ | |||
+ | import Blender | ||
+ | from Blender.BGL import * | ||
+ | from Blender import Draw | ||
+ | |||
+ | def show_gl_samp(): | ||
+ | |||
+ | #clear out the color buffer and give it a white background. | ||
+ | glClearColor(0, | ||
+ | glClear( GL_COLOR_BUFFER_BIT ) | ||
+ | |||
+ | # Draw a white rectangle. | ||
+ | glColor3f( 1.0, 1.0, 1.0 ) | ||
+ | glRecti( 40,96, 80, 126 ) | ||
+ | |||
+ | |||
+ | def ev( evt, val ): | ||
+ | if evt == Draw.ESCKEY or evt == Draw.QKEY: | ||
+ | Draw.Exit() | ||
+ | |||
+ | Draw.Register( show_gl_samp, | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== GLUT ==== | ||
+ | |||
+ | GLUT is a complete API written by Kilgard that lets you create windows and handle the messages. It exists for several platforms, which means that a program which uses GLUT can be compiled on many platforms without changes in the code. | ||
+ | |||
+ | Long term short. It provides loops, time functions, callback for the animation to render. | ||
+ | |||
+ | Why Glut? the purpose not use OpenGL? | ||
+ | Because OpenGL doesn' | ||
+ | |||
+ | GLUT is a library that addresses these issues by providing a platform-independent interface to window management, menus, and input devices in a simple and elegant manner. Using GLUT comes at the price of some flexibility. | ||
+ | |||
+ | What it is used for?? | ||
+ | |||
+ | GLUT provides some routines for the initialization and creating the window. Those functions are called GLUT application: | ||
+ | |||
+ | The first line you always write glutInit(& | ||
+ | |||
+ | After call glCreateWindow() with the window name as parameter. | ||
+ | |||
+ | Then you could pass some methods for certain events. The most important ones are reshape and display. In reshape you need to redefine the field of view and specify a new area in the window, where OpenGL is allowed to draw to. | ||
+ | |||
+ | Display should clear the so called color buffer – let's say this is the sheet of paper – and draw the objects. | ||
+ | |||
+ | You pass the methods by glut*Func(), | ||
+ | |||
+ | Examples glutMouseFunc() callback routine: | ||
+ | |||
+ | As for starters.... | ||
+ | |||
+ | Go to the http:// | ||
+ | |||
+ | |||
+ | ==== DirectX ==== | ||
+ | here is lengthy definition from microsoft: | ||
+ | Microsoft DirectX is a group of technologies designed for creating games and other high-performance multimedia applications. It includes support for 2D and 3D graphics, sound, music, input devices, and support for networked applications such as multiplayer games. | ||
+ | |||
+ | DirectX provides access to the capabilities of your display and audio cards, which enables programs to provide realistic three-dimensional (3-D) graphics and immersive music and audio effects. DirectX is a set of low-level Application Programming Interfaces (APIs) that provides Windows programs with high-performance hardware-accelerated multimedia support. | ||
+ | |||
+ | DirectX enables the program to easily determine the hardware capabilities of your computer, and then sets the program parameters to match. This allows multimedia software programs to run on any Windows-based computer with DirectX compatible hardware and drivers and ensures that the multimedia programs take full advantage of high-performance hardware. | ||
+ | |||
+ | DirectX contains a set of APIs that provide access to the advanced features of high-performance hardware, such as 3-D graphics acceleration chips and sound cards. These APIs control low-level functions, including two-dimensional (2-D) graphics acceleration; | ||
+ | |||
+ | All of it boil down to directx = software by microsoft used for graphic and sound on your pc... | ||
+ | |||
+ | ==== music ==== | ||
+ | |||
+ | Music is a instrument that produce wave of sound. (usually with a pattern) The types of files are usually save in AVI, MKV, WAV, AIFF, AU, and raw format. | ||
+ | |||
+ | Music for blenders or games are much more complex. Read MIDI files under music for blenders and game engines. | ||
+ | |||
+ | ==== MIDI ==== | ||
+ | MIDI (Musical Instrument Digital Interface - \\ | ||
+ | protocol | ||
+ | midi does not transmit an audio signal or media however it transmits " | ||
+ | |||
+ | MIDI cables connect instruments by means of MIDI IN, MIDI OUT, and MIDI THRU jacks. The MIDI IN port receives incoming MIDI messages the MIDI OUt port transmits actions of the keyboard to other keyboards or a computer. The MIDI THRU jack provides a direct copy of data coming into the MIDI IN jack, providing the ability to "daisy chain" several instruments and devices together. | ||
+ | |||
+ | The majority of MIDI communication consists of multi-byte packets beginning with a status byte followed by one or two data bytes .Bytes are packets of 8 bits (0's or 1's). Status bytes begin with a 1 this is called " | ||
+ | |||
+ | **Channel Voice**\\ | ||
+ | Control the instrument' | ||
+ | **Channel Mode**\\ | ||
+ | Define instrument' | ||
+ | **System Common**\\ | ||
+ | Messages intended to all networked instruments and devices\\ | ||
+ | **System Real-Time**\\ | ||
+ | Intended for all networked instruments and devices. Contain only status bytes and is used for syncronization of all devices. essentially a timing clock\\ | ||
+ | **System Exclusive**\\ | ||
+ | Originally used for manufacturer-specific codes, such as editor/ | ||
+ | \\ | ||
+ | |||
+ | |||
+ | ==== C ==== | ||
+ | *[[: | ||
+ | *[[: | ||
+ | *[[: | ||
+ | |||
+ | |||
+ | Backus–Naur Form (BNF) - a structured and widely used way to describe programming languages, instruction sets, and communication protocols. | ||
+ | |||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | *symbol - is non-terminal | ||
+ | *expression - is a set of one or more symbols | ||
+ | *| - are ORs (choices) | ||
+ | *::= - is defined as | ||
+ | *< > - surround category names | ||
+ | *[ ] - optional items | ||
+ | *{ } - repetitive items | ||
+ | *" " - sourround one character terminals ie: " | ||
+ | |||
+ | ==== hooks ==== | ||
+ | ==== plugins ==== | ||
+ | ==== int main ==== | ||
+ | ==== shell ==== | ||
+ | ==== user interface ==== | ||
+ | |||
+ | part of the computer human interaction field user interface is how and where people and machines interact with one another. one side is input which is how a person manipulates a machine. the other is output which is how the system responds to the users input. this all includes hardware and software. | ||
+ | *types | ||
+ | *machine - instrument panel | ||
+ | *os\screen - keyboard\mouse | ||
+ | *usability | ||
+ | *Visibility of system status | ||
+ | *Match between system and the real world | ||
+ | *User control and freedom | ||
+ | *Consistency and standards | ||
+ | *Error prevention | ||
+ | *Recognition rather than recall | ||
+ | *Flexibility and efficiency of use | ||
+ | *Aesthetic and minimalist design | ||
+ | *Help users recognise, diagnose, and recover from errors | ||
+ | *Help and documentation | ||
+ | |||
+ | ==== Blender ==== | ||
+ | *[[: |