Thursday, October 29, 2009

Tuesday, October 20, 2009

Sunday, October 18, 2009

Maya: Render from command line

You know, normally we will render our scenes from:

[Rendering]

Render --> Batch Render.

However that involves opening our maya application overnight.

Here's how to render from command line:

go to the directory where the mb/ma file resides.

render <filename>

That is assuming that you've got all your file properties set correctly for rendering.
Easy eh?

More help here: http://www.wonderhowto.com/how-to/video/how-to-render-maya-scenes-from-the-command-line-249001/

Maya: Motion along path

Needed a short animation for motion along path to simulate running across forest.
Ah-har! This helps! Basically motion of camera along a certain path.
Phew! Thanks!

http://caad.arch.ethz.ch/info/maya/manual/UserGuide/Animation/KeyframeMoPath/06_animating_motion_paths.doc2.html


Basic animation how to:
http://www.expertrating.com/courseware/mayacourse/MAYA-Animation-Basics-1.asp

Monday, October 5, 2009

Creating mathematical symbols with MS Word

There are four sections to this document

  • Before you can use the Equation Editor
  • (Very) Basic operation of the Equation Editor
  • Shortcut Keys are your very best friend
  • Simonds tips on using the equation editor
Before you can use the Equation Editor

The other three sections of this document will work only if the Microsoft Equation Editor has been installed on the machine you are using; the Equation Editor comes with Microsoft Office but is not installed under a standard installation. The computers in the Sylvania CRC and Sylvania math classrooms all have the Equation Editor installed. On your home machine you probably will need to load your Microsoft office CD and do a custom install to install the Equation Editor. (It's easier to do than the phrase "custom install" implies. J ) All of the maneuvers described in this section of the document will need to be done at most once.

After installing the Equation Editor, you also want to customize your toolbar so that the Equation Editor button is easily accessible. (The button is already on the CRC and math classroom machines.)

The menu shown in Figure 1 was opened by selecting Tools - Customize from the toolbar menu across the top of the screen, then selecting the commands file-tab at the top of the dialogue box, then selecting the insert category on the left side of the box, and finally scrolling down on the right-side of the box until the Equation Editor button was in view. Once you have located the Equation Editor button, left-click and drag the button up to your toolbar menu.

Figure 1: Customizing your Toolbar

(Very) Basic operation of the Equation Editor

Once your Equation Editor button is in place, all you need to do to open an Equation Box is left-click that button. Upon your click an Equation Box like that shown in Figure 2 will appear as well as the Equation Editor Menu shown in Figure 3. (As a side note I should mention that the Equation Editor Menu has the unfortunate habit of sometimes opening directly on top of the location at which you are typing. L Should this happen, simply left-click and drag the solid strip across the top of the box until the box is out of the way.)


Figure 2: Equation Box

Figure 3: Equation Editor Menu
The Equation Editor Menu can be used to insert both symbols and templates for complicated mathematical expressions. For example, Figure 4 shows what you click to insert the Pi symbol; Figure 5 shows what to click to insert a fraction template.
Figure 4: Inserting a Pi symbol


Figure 5: Inserting a Fraction Template

Once a template has been inserted into your Equation Box, you need to look and see where inside the template the cursor is flashing. You then go ahead and type the information that goes into that location. To move to the next location in the template you press the Tab key. You also press the Tab key to exit the template. When you are done typing in your expression, you left-click anywhere outside of the Equation Box. If you need to edit an existing Equation Box you simply double-click anywhere over the expression contained within the box.

Shortcut Keys are your very best friend

Mousing all of your math symbols and templates gets real old real fast; thankfully there are shortcut keys that enable you to avoid your mouse in most circumstances. The shortcut keys are found in the Help Menu when you have an Equation Box open. I have copied the most commonly used shortcut keys into figures 6, 7, and 8.
Figure 6: Shortcut Keys for selected Math Templates

Figure 7: Shortcut Keys for after the fact symbol Embellishments

Figure 8: Shortcut keys for selected math symbols

Simonds tips on using the equation editor

  • Always add a full space before and after an equal sign, before and after a plus or minus sign, after a limit sign or integral sign, and before each limit on a definite integral. A full space is created inside an equation box by pressing Ctrl+Shift+Space Bar.
  • Always add a half space between a coefficient and a variable and before and after the arrow sign in a limit. A half space is created by pressing Ctrl+Space Bar.
  • To line up your equal signs (J ) you need to use the format/align option shown in Figure 9.

Figure 9: Gotta' line up them equal signs!
  • You can add text inside an Equation box by selecting Style - Text from the toolbar menu. (See Figure 10.)

Figure 10: Adding text inside an Equation Box
  • Sometimes you might want to insert text along with a multistep simplification or other type process. One way to achieve this is with a matrix. For example, the simplification shown in Figure 11 was typed using a matrix with 7 rows and two columns. The style used in the left column was "Math" while the style used in the right column was "Text." I always insert a blank row between every line to avoid crowding - that's why the matrix had seven rows as opposed to four. The appropriate Menu and Dialogue Box are shown in Figures 12 and 13.

Figure 11: Adding text along with mathematics

Figure 12: The Matrix Menu Bar

Figure 13: The Matrix Dialogue Box

Finally, you will find below is a keystroke guide for creating the expression .

  1. Open an Equation Box
  2. press Ctrl+t, u
  3. type in "lim" (don't type the quotes J )
  4. press Tab
  5. type in "h"
  6. press Ctrl+Space Bar
  7. press Ctrl+k, a
  8. press Ctrl+Space Bar
  9. type in "0"
  10. press Tab
  11. press Ctrl+Shift+Space Bar
  12. press Ctrl+f
  13. press Ctrl+9
  14. type in "3"
  15. press Ctrl+shift+Space Bar
  16. type in "+"
  17. press Ctrl+shift+Space Bar
  18. type in "h"
  19. press Tab
  20. press Ctrl+h
  21. type "2"
  22. press Tab
  23. press Ctrl+Shift+Space Bar
  24. type in "-"
  25. press Ctrl+Shift+Space Bar
  26. type in "9"
  27. press Tab
  28. type in "h"
  29. press Tab
  30. click anywhere outside the Equation Box to close the equation box
Blatantly copied from: http://spot.pcc.edu/~ssimonds/thisandthat/msword.htm

Thursday, October 1, 2009

Sunday, September 27, 2009

Career in Game Development Industry - How to get a foot in?

Here's a short read on that.

http://www.jenrickblog.co.uk/2009/09/career-development-in-the-video-gaming-sector-what-skills-do-developers-need-to-excel-please-contribute-to-this-research-paper/#more-1552

Another insight from LinkedIn:

From the Art Pipline perspective I'd say the most important skills are zBrush/Mudbox and 3ds Max/Maya. However knowing those programs does not mean a candidate will stand out. They must understand the pipeline and where they fit in. The artist must be capable and willing to learn custom tools outside of their everyday arsenal of off the shelf products. zBrush/Mudbox Artist must be masters of sculpting and then if required retopoing meshes from the ground up. They should not be afraid of mastering the UV procoess using pelt-mapping and 3D painting solutions. Level designers should prove that they can texture and build environments to a certain scale. Character Artists must study and master anatomy. If I'm an environment artist I should want to show a fully realized world that is playable. Tools such as Unreal Engine 3.0 and Cry Engine 2.0 allow for modelers and texture artists to show their assets in a true game environment rather than just showing a turn table with music playing behind it. It's also helpful to understand how to export normal maps and bump maps for games. A healthy understanding of repeating textures and decals is important as well. Environment artists should envision and create massive detailed set pieces with as limited geometry as is possible. Artists should find the most efficient techniques for limiting the amount of polygons in a scene. Character Artists should attempt hair and fur by using opacity mapped textures. These things which are not easily rendered in real-time will stand out to those in the industry.

I hope this is helpful.

Joseph Tresca Sr. Interactive Art Director, 3D Artist, Eyeballistic, Inc.

Tuesday, September 22, 2009

Animation Paper Reading

This semester, one of the smaller assignments is a paper reading of any Siggraph worthy animation papers.

I've chosen Treuille's Model Reduction of Fluids. Thing is, I am quite taken with his research and work. But ugh... this is a hard paper. For now... And submission is in 2 weeks' time!

See all his work here:

http://www.cs.cmu.edu/~treuille/

Thursday, August 13, 2009

A graduate school survival guide: "So long, and thanks for the Ph.D.!"

Brief description

A computer science graduate school survival guide, intended for prospective or novice graduate students. This guide describes what I wish I had known at the start of graduate school but had to learn the hard way instead. It focuses on mental toughness and the skills a graduate student needs. The guide also discusses finding a job after completing the Ph.D. and points to many other related web pages.


"So long, and thanks for the Ph.D.!"

a.k.a.

"Everything I wanted to know about C.S. graduate school
at the beginning but didn't learn until later."

The 4th guide in the Hitchhiker's guide trilogy
(and if that doesn't make sense, you obviously have not read Douglas Adams)

by Ronald T. Azuma

v. 1.08

Original version 1997, last revised January 2003

http://www.cs.unc.edu/~azuma/hitch4.html

Wednesday, July 29, 2009

Windows Movie Maker: Superimpose xml

Found that superimposing image over video is not so intuitive in Movie Maker. Will try it out tonight!

Here's an example found on: http://www.windowsmoviemakers.net/Forums/ShowPost.aspx?PostID=194964&


<title name="PapaJohn Overlay 25" iconid="13">
<param name="InternalName" value="TitleStandard">
<param name="Description" value="Superimpose image 1">
<param name="LogoBitmapFilename" value="Overlay25.png">
<param name="LogoRect" value="0.00 0.00 1.00 1.00">
<paragraph>
<param name="IsOneLine" value="true">
<param name="BoundingRect" value="1.00 1.00 1.00 1.00">
<param name="MaxCharacterCount" value="32">
</paragraph>
</title>
<title name="PapaJohn Overlay 26" iconid="13">
<param name="InternalName" value="TitleStandard">
<param name="Description" value="Superimpose image 2">
<param name="LogoBitmapFilename" value="Overlay26.png">
<param name="LogoRect" value="0.00 0.00 1.00 1.00">
<paragraph>
<param name="IsOneLine" value="true">
<param name="BoundingRect" value="1.00 1.00 1.00 1.00">
<param name="MaxCharacterCount" value="32">
</paragraph>
</title>
<title name="PapaJohn Overlay 27" iconid="13">
<param name="InternalName" value="TitleStandard">
<param name="Description" value="Superimpose image 1">
<param name="LogoBitmapFilename" value="Overlay27.png">
<param name="LogoRect" value="0.00 0.00 1.00 1.00">
<paragraph>
<param name="IsOneLine" value="true">
<param name="BoundingRect" value="1.00 1.00 1.00 1.00">
<param name="MaxCharacterCount" value="32">
</paragraph>
</title>
</titledll>
</titles>
</transitionsandeffects>

Tuesday, June 23, 2009

Simple things like find

http://www.softpanorama.org/Tools/Find/find_mini_tutorial.shtml

Unix find is a pretty tricky but very useful utility that can often fool even experienced UNIX professionals with ten on more years of sysadmins work under the belt. It can enhance functionality of those Unix utilities that does not include tree traversal (BTW GNU grep has -r option for this purpose and can be used on its own to perform tree traversal task: grep -r "search string" /tmp.). There are several versions of find with the main two being POSIX find used in Solaris, AIX, etc and GNU find used in linux. GNU find can be installed on Solaris and AIX and it is actually a strong recommendation as there are some differences; moreover gnu find have additional capabilities that are often useful.

But find can do more then a simple tree traversal available with option -r (or -R) in many Unix utilities. Traversal provided by find can have excluded directory tree branches, can select files or directories using regular expressions, can be limited to specific typed of filesystem, etc. This capability is far above and beyond regular tree traversal of Unix utilities so find is a real Unix utility -- a useful enhancer of functionally of other utilities including both utilities that do not have capability to traverse the directory tree and those which have built-in simple recursive tree traversal

The idea behind find is extremely simple: this is a utility for searching files using the directory information and in this sense it is similar to ls. But it is more powerful then ls as it can provide " a ride" for other utilities and has an idiosyncratic mini-language for specifying queries, the language which probably outlived its usefulness but nobody has courage to replace it with a standard scripting language.

For obscure historical reasons find mini-language is completely different from all other UNIX commands: it has full-word options rather than single-letter options. For example, instead of a typical Unix-style option -f to match filenames (like in tar -xvf mytar.tar) find uses option -name. Also path to search can consist of multiple starting points, for example

find /usr /bin /sbin /opt -name sar # here we exclude non-relevant directories

In general you need to specify the set of starting points for a search through the file system first. The first argument starting with "-" is considered to be a start of "find expression". The latter can have side effects if you specified actions in the expression.

It is very important to understand that you can specify more than one directory as a starting point for the search. To look across the /bin and /var/html directory trees for filenames that contain the pattern *.htm*, you can use the following command:

find /usr /var/html -name "*.htm*" -print

Please note that you need quotes for any regex. Otherwise it will be evaluated immediately in the current context by shell.

It is simply impossible to remember all the details of this language unless you construct complex queries each day and that's why this page was created. Along with this page it make sense to consult the list of typical (and not so typical) examples which can be found in in Examples page on this site as well as in the links listed in Webliography. An excellent paper Advanced techniques for using the UNIX find command was written by Bill Zimmerly. I highly recommend to read it and then print and have a reference. Several examples in this tutorial are borrowed from the article.

The full find language is pretty complex and consist of several dozens of different predicates and options. There are two versions of this language: one implemented in POSIX find and the second implemented in GNU find which is a superset of POSIX find. That can make big difference in complex scripts. But for interactive use the differences is minor: only small subset of options is typically used on day-to-day basis by system administrators. Among them:

  • -name True if pattern matches the current file name. Simple regex (shell regex) may be used. A backslash (\) is used as an escape character within the pattern. The pattern should be escaped or quoted. If you need to include parts of the path in the pattern in GNU find you should use predicate wholename

    Use the -iname predicate (GNU find supports it) to run a case-insensitive search, rather than just -name. For example:

     $ find . -follow -iname '*.htm' -print0 | xargs -i -0 mv '{}' ~/webhome

    Usage of -print0 is a simple insurance for the correct processing of files with spaces.

  • -fstype type True if the filesystem to which the file belongs is of type type. For example on Solaris mounted local filesystems have type ufs (Solaris 10 added zfs). For AIX local filesystem is jfs or jfs2 (journalled file system). If you want to traverse NFS filesystems you can use nfs (network file system). If you want to avoid traversing network and special filesystems you should use predicate local and in certain circumstances mount
  • "-atime/-ctime/-mtime" [+|-]n
    Specify selection of the files based on three Unix timestamps: the last time a files's "access time", "file status" and "modification time".
    n
    is time interval -- an integer with optional sign. It is measured in 24-hour periods (days) or minutes counted from the current moment.
    • n: If the integer n does not have sign this means exactly n 24-hour periods (days) ago, 0 means today.
    • +n: if it has plus sing, then it means "more then n 24-hour periods (days) ago", or older then n,
    • -n: if it has the minus sign, then it means less than n 24-hour periods (days) ago (-n), or younger then n. It's evident that -1, and 0 are the same and both means "today".

    Note: If you use parameters with find command in scripts be careful when -mtime parameter is equal zero. Some (earlier) versions of GNU find incorrectly interpret the following expression

    find -mtime +0 -mtime -1
    which should be equivalent to
    find  -mtime -1
    but does not produce any files
    • n: If the integer n does not have sign this means exactly n 24-hour periods (days) ago, 0 means today.
    • +n: if it has plus sing, then it means "more then n 24-hour periods (days) ago", or older then n,
    • -n: if it has the minus sign, then it means less than n 24-hour periods (days) ago (-n), or younger then n. It's evident that -1 and 0 are the same and both means "today".
    • Examples:
      • Find everything in your home directory modified in the last 24 hours:
        • find $HOME -mtime -1
      • Find everything in your home directory modified in the last seven 24-hour periods (days):
        • find $HOME -mtime -7
      • Find everything in your home directory that have NOT been modified in the last year:
        • find $HOME -mtime +365
      • To find html files that have been modified in the last seven 24-hour periods (days), I can use -mtime with the argument -7 (include the hyphen):
        find . -mtime -7 -name "*.html" -print

        If you use the number 7 (without a hyphen), find will match only html files that were modified exactly seven 24-hour periods (days) ago:

        find . -mtime 7 -name "*.html" -print
      • To find those html files that I haven't touched for at least seven 24-hour periods (days), I use +7:
        find . -mtime +7 -name "*.html" -print
  • -newer/-anewer/-cnewer baseline_file The time of modification, access time or creation time are compared with the same timestamp in the baseline file. If file is a symbolic link and the -H option or the -L option is in effect, the modification time of the file it points to is always used.
    • -newer Modification time is compared with modification time of the basline_file True if file was modified more recently than baseline file.
    • -anewer Access time is compared with access time of basline_file . True if file was last accessed more recently than baseline file.
    • -cnewer Creation file is compared. For example: find everything in your home that has been modified more recently than "~joeuser/lastbatch.txt ":
      • find $HOME -newer ~joeuser/lastbatch.txt
  • -local True if the file system type is not a remote file system type. In Solaris those types are defined in the /etc/dfs/fstypes file. nfs is used as the default remote filesystem type if the /etc/dfs/fstypes file is not present. The -local option skips the hierarchy of non-local directories. You can also search without descending more then certain number of levels as explained later or exclude some directories from the search using
  • -mount Always true. Restricts the search to the file system containing the directory specified. Does not list mount points to other file systems.
  • -xdev Same as the -mount primary. Always evaluates to the value True. Prevents the find command from traversing a file system different from the one specified by the Path parameter.
  • -xattr True if the file has extended attributes.
  • -wholename simple-regex [GNU find only] . File name matches simple regular expression (often called shell patterns). In simple regular expressions the metacharacters '/' and '.' do not exist; so, for example, you can specify:
    find . -wholename '/lib*'
    which will print entries from directories /lib64 and /lib. To ignore the directories specified, use option -prune For example, to skip the directory /proc and all files and directories under it (which is important for linux as otherwise errors are produced you can something like this:
    find . -wholename '/proc' -prune -o -name file_to_be_found   
    If you administer a lot of linux boxes it is better to create alias ff:
    if [[ `uname` == "Linux" ]] ; do

    alias ff='find . -wholename '/proc' -prune -o -name '

    else

    ff='find . -name ' # not GNU find does not support -wholename

    fi

Other useful options of the find command include:

  1. -regex regex [GNU find only] File name matches regular expression. This is a match on the whole pathname not a filename. Stupidly enough the default regular expressions understood by find are Emacs Regular Expressions, not Perl regular expressions. It is important to note that "-iregex" option provide capability to ignore case.
  2. -perm permissions Locates files with certain permission settings. Often used for finding world-writable files or SUID files. See below
  3. -user Locates files that have specified ownership. Option -nouser locates files without ownership. For such files no user in /etc/passwd corresponds to file's numeric user ID (UID). such files are often created when tar of sip archive is transferred from other server on which the account probably exists under a different UID)
  4. -group Locates files that are owned by specified group. Option -nogroup means that no group corresponds to file's numeric group ID (GID) of the file
  5. -size Locates files with specified size. -size attribute lets you specify how big the files should be to match. You can specify your size in kilobytes and optionally also use + or - to specify size greater than or less than specified argument. For example:
    find /home -name "*.txt" -size 100k 
    find /home -name "*.txt" -size +100k 
    find /home -name "*.txt" -size -100k 

    The first brings up files of exactly 100KB, the second only files greater than 100KB, and the last only files less than 100KB.

  6. -ls list current file in `ls -dils' format on standard output.
  7. -type Locates a certain type of file. The most typical options for -type are as following:
    • d -Directory
    • f - File
    • l - Link

    For example to find a list of the directories use can use the -type specifier. Here's one example:

    find . -type d -print

Tuesday, June 2, 2009

Oooooh.... Beautiful....

I fell into this site by chance: http://kaba.hilvi.org/
And I am ok impressed.

But the links....

cgafaq wiki

The plethora of source codes.... Oh.... I am going to pee in my pants...

http://www.geometrictools.com/index.html

Seriously... I mean pee like a broken damnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn.

And look at the resources link provided:

http://www.geometrictools.com/Resources/Links.html