Please let me know if something is wrong.
* [001]Simulating Ocean Water
- Jerry Tessendorf
* [002]Deep-Water Animation and Rendering
- http://www.gamasutra.com/gdce/2001/jensen/jensen_01.htm
- Lasse Staff Jensen and Robert Golias
* [003]A Novel Algorithm for Incompressible Flow Using Only A Coarse Grid Projection
- physbam.stanford.edu/~eenglish/tmp/refinement.pdf
- Michael Lentine, Wen Zheng, Ronald Fedkiw
- Read.
* [004]Filament based smoke with vortex shedding and variational reconnection
- Steffen Weißmann and Ulrich Pinkall
- That filament based stuff.
* [005]Animating Sand as a Fluid
- Yongning Zhu and Robert Bridson
- Bridson's page http://www.cs.ubc.ca/~rbridson/
- First paper of Flip in CG.
* [006]Basic knowledge to learn weather dynamics(Japanese)
- for [005] (strain rate tensor, etc.)
- http://epa.scitec.kobe-u.ac.jp/~ykawai/project/meteo_basic/meteo_basic.html
- http://epa.scitec.kobe-u.ac.jp/~ykawai/project/meteo_basic/node15.html
* [007]A Controllable, Fast and Stable Basis for Vortex Based Smoke Simulation
- http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.101.6870&rep=rep1&type=pdf
- Alexis Angelidis, Fabrice Neyret, Karan Singh, Derek Nowrouzezahrai
- one of original paper of [004].
* [008]Computation of Vortex Ring Dynamics
- http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.101.6870&rep=rep1&type=pdf
- Robert KRASNY and Leon KAGANOVSKIY
- For [004] tutorial.
* Vorticity Structure and Evolution in a Transverse Jet with New Algorithms for Scalable Particle Simulation http://dspace.mit.edu/bitstream/handle/1721.1/27103/56835888.pdf?sequence=1
- Fro [004] Looks good explanation for rosenhead-moore.
* [009]FLIP: A LOW-DISSIPATION, PARTICLE-IN-CELL METhOD FOR FLUID FLOW
- J.U. BRACKBILL, D.B. KOTHE and H.M. RUPPEL
- Flip.
* [010]A new doubly discrete analogue of smoke ring flow and the real time simulation of fluid flow.
- Written by Pinkall, author of Philament based ...
* [011]Fluid Simulation For Computer Graphics: A Tutorial in Grid Based and Particle Based Methods
- http://www.colinbraley.com/Pubs/FluidSimColinBraley.pdf
- Found when googled "MAC grid" while reading Animating Sand as a Fluid
* [012]strain and rotation(Japanese)
- http://solid4.mech.okayama-u.ac.jp/ひずみと回転.pdf
- Written by a prof. of Okayama univ. For Animating Sand as a Fluid. Good.
* [013]Strain and stress
- http://www.mech.kyushu-u.ac.jp/lab/chi10/jp/chap3.pdf
- Written by a prof. of Kyusyu univ. For Animating Sand as a Fluid. Good.
* [014]FLUID SIMULATION SIGGRAPH 2007 Course Notes
- http://www.cs.ubc.ca/~rbridson/fluidsimulation/fluids_notes.pdf
- Famous one by Bridson, authoer of Animating Sand as a Fluid. SUPER GOOD.
* [015]A forward-trajectory global semi-Lagrangian transport scheme
- Detailed documents about semi-Lagrangian method.
* [016](Japanese)
- www.sr3.t.u-tokyo.ac.jp/~matsuo/lecture/09suchi/shiryo8.pdf
* [017]Wavelet Turbulence for Fluid Simulation
- That Wavelet Trubulence one.
* [018]Real-time Fluid Simulations with Wavelet Turbulence
- Student's paper. His professor is the author of Wavelet Trubulence.
* [019]Real-Time Simulation and Rendering of 3D Fluids
- GPU Gems 3 chapter30. Haven't read.
- http://geometry.caltech.edu/~keenan/pdf/rtsr3df.pdf
* [020]Animation and Rendering of Complex Water Surfaces
- Origin of particle level set. Haven't read.
* [021]A Hybrid Particle Level Set Method for Improved Interface Capturing
- Origin of Particle level set. Havne't read.
* [022]Meshless Approximation Methods and Applications in Physics Based Modeling and Animation Bart Adams, Martin Wicke Eurographics 2009 Tutorial(未)
- http://graphics.stanford.edu/~wicke/publications.html
- Like a course note about Meshles. Haven't read.
* [023]FlowFixer?: Using BFECC for Fluid Simulation
- http://www.gvu.gatech.edu/~jarek/papers/FlowFixer.pdf
- Haven't read.
* [024]Fluid Simulation for Computer Animation
- PPT slide when googled "Mark Carlson bfecc". Haven't read.
- www.cc.gatech.edu/~turk/powerpoint_presentations/fluids.ppt
Sunday, November 7, 2010
From my note (Fluid)
From my note (PRT)
Please let me know if something is wrong.
PRT
* [001]PRT (Japanese)
- http://www.pyramid-inc.net/technical/index.php
- explanation of :http://journal.mycom.co.jp/articles/2006/09/23/cedec4/(Japanese)
* [002]Spherical Harmonic Lighting: The Gritty Details
http://www.research.scea.com/gdc2003/spherical-harmonic-lighting.html
- [001] says read this for docs about SH Rotation.
* [003]All-frequency precomputed radiance transfer using spherical radial basis functions and clustered tensor approximation
- http://www.cis.nctu.edu.tw/~gis91812/
- Tsai, Yu-Ting and Shih, Zen-Chung.
- Proceedings of ACM SIGGRAPH 2006, pp. 967-976, 2006.
- SRBF for PRT. Half read.
* [004]All-Frequency Precomputed Radiance Transfer for Glossy Objects
- Read for [003]. Uses PRT for glossy materials by high compression with a combination of wavelet, CPCA, BRDF factorization
* [005]All Frequency Shadows Using Non linear Wavelet Lighting Approximation
- Read for [003] [004]Uses wavelet for PRT.
* [006]Matrix Radiance Transfer
- Read for [003] [004]. Uses CPCA.
* [007]Interactive Rendering with Arbitrary BRDFs using Separable Approximations
- Read for [004]. BRDF factorization。
* [008]Nonstationary Wavelets on them-Sphere for Scattered Data
- [003] says detailed explanation for SRBF convolution, i.e. spherical sigular integral. Haven't read.
* [009]Triple Product Wavelet Integrals for. All-Frequency Relighting
- [003]Referenced. Came after[005]. Haven't read.
* [010]Is There Anything Comparable to Spherical Harmonics But Simpler?
- http://www.cse.cuhk.edu.hk/~ttwong/papers/srbf/srbf.html
- srbf.pps http://appsrv.cse.cuhk.edu.hk/~ttwong/cgi-bin/paper-download/download.cgi?path=srbf&dl=srbf.pps
- Good document of SRBF for PRT.
- Probabably the base of this is "An RBF-based Image Compression Method for Image-based Rendering" written by the same author. Couldn't find on the web.
* [011]
- Stupid Spherical Harmonics (SH) Tricks
- SH (and PRT?) document by Sloan. Notes on Zonal harmonics.
- Haven't read
* [012]
- Nonstationary Wavelets on the m-Sphere for Scattered Data
- Francis J. Narcowich, Joseph D.Ward
- [003] referenced for spherical functionのconvolution
* [013]
- An Efficient Representation for Irradiance Environment Maps
- For test implementation in Nuke
* [014]
- On the Relationship between Radiance and Irradiance: Determining the illumination from images of a convex Lambertian object
- [013] referenced.
* [100]Hierarchical RBF
- http://en.wikipedia.org/wiki/Hierarchical_RBF
- Looks model generation from a point cloud, haven't read.
* [101]Cinematic Wavelet Lighting
- www.pyramid-inc.net/technical/rd_file/wavelet_jp.pdf(Japanese)
- Pyramid published at CEDEC2004
* [102]Wavelet Lighting(Japanese)
- www.pyramid-inc.net/technical/rd_file/wavelet_jp.pdf
- Comes with [101]
* [200]
- All-Frequency Relighting of Non-Diffuse Objects
- Haven't red, looks famous.
- Simpler than [004], fast
Tuesday, November 2, 2010
Re-opened hohehohe2's OpenMaya tutorial
It's moved here!
http://www.daisukemaki.com/archive/koichi/0mokuji.html
Thank you Maki for hosting it.
Saturday, September 25, 2010
hohehohe2's OpenMaya tutorial is closing
My OpenMaya(Maya API) tutorial site and its main page are closing due to the end of the free hosting service they are using.
In the meantime I may reopen it somewhere else but at the moment there's no plan for it since the contents are getting old, I've moved my main blog here, and I have less interest in maintaining these kind of informations.
It'll be closed at the end of October. I think the role of the site has finished but if you happen to need it and cannot read it anymore, please email me.
Friday, September 24, 2010
Qt Designer bad knowhows (*)
"bad knowhow" is a Japangrish meaning it is something you have to use knowing it is not a nice way.
Qt designer is a good tool but there are several things you need to know until you get familiar with it.
1) Making widgets expand within a window
It is the first thing most people takes a few hours googling to get the answer. The answer is tricky.
- Drag and drop arbitrary widget (button or spacer is enough)
- Right click the background of the window (not the widget you have dropped)
- Select Layout - Layout Horizontally (or Layout Vertically) in the pop-up menu
You cannot select Layout- Layout Horizontally (Vertically) until you create a widget on the window.
2) Moving a layout from its parent to another.
When the UI gets complicated, it is often difficult to move the right layout to the right place.
To move the right layout:
- Select the layout in the Object Inspector.
- Click the layout
Qt Designer will pick the selected layout.
To the right place:
- When clicking the layout, click near the top left corner of the layout
- Drag and drop it to the new parent in the Object Inspector
Unless you click new the top left corner, you'll be puzzled when dragging it to the Object Inspector
3) Try to copy and paste a widget and get error "Cannot paste widgets. Designer could not find a container without a layout to paste into."
My solution is to create a new dummy window (with ctrl-N) and copy&paste to it. then drag and drop it to wherever you wish to. There may be other ways.
I will add a screen shot on request.
When using the qt-designer generated file (*.ui), never modify automatically generated file. For example, I use Python and I convert *.ui to *.py with pyuic4 tool. I never modify the .py file by hand, which would halve the qt designer's strength. You will quite often want to update the GUI design and once you have modified the generated file, your modification to the source code would be lost. Insted, use the file from another. Same applies to C++ users to.
By the way qt designer is in qt-devel yum package (e.g. qt-devel-4.6.3-8.fc13.i686). It tool a while for me to find it.
Saturday, September 4, 2010
Scons
This is my log of start using SCons, you don't need to read this if you are familiar with SCons already. Most of my knowledge comes from SCons User Guide, and many of examples shown here were taken from the guide.
I looked for a build tool (like make) for my project. Like everybody else in the world, I'm sick of traditional make and needed a more elegant one.OMake's concurrent build (-P switch) attracted me a lot but it seemed to need some time to use Omake with emacs. Scons is a build tool (like make) fully utilizes Python, and there is no need to code in OCaml (omake) (*).
Once you have installed scons (if you use macport to install, you also need py25-hashlib to be installed), the first step of using Scons is to write a SConstruct file (Makefile equivalent), which is actually a Python script (so you can write a Makefile equivalent in Python).
If you just have two files hello.cpp which uses hello.h, a simple SConstruct file is
Program('hello.cpp')
to build, you just type
scons
Scons automatically looks at the source code hello.cpp and it is dependent on hello.h, so whenever hello.h changes, scons knows it needs to rebuild hello.
SCons User Guide is very well written and easy to read document but it is targeted for non-Python programmers and a little bit verbose, so I'll just write down the most important parts (for me) of the guide here. It doesn't cover throughout hte guide, I only read the first several chapters, up to 7.2.1 and I felt I can already use Scons to some extent.
-Program(['foo.cpp', 'bar.cpp']) if there are two sources.
-You can write Program('program', Glob('*.c')).
-SharedLibrary('foo', ['f1.c', 'f2.c']) and StaticLibrary('foo', ['f1.c', 'f2.c']) for shared and static library.
-Program('prog.c', LIBS=['foo', 'bar'], LIBPATH='.')
-Program('hello.c', CPPPATH = ['include', '/home/project/inc']) for -Iinclude -I/home/project/inc
-Program('prog.c', LIBS = 'm', LIBPATH = ['/usr/lib', '/usr/local/lib']) for -L/usr/lib -L/usr/local/lib -lm
-You can write SConstruct script like,
hello_list = Object('hello.c', CCFLAGS='-DHELLO')
goodbye_list = Object('goodbye.c', CCFLAGS='-DGOODBYE')
Program(hello_list + goodbye_list)
Object means "Object file" (i.e. *.o file). Not Python object, nor any other object.-Explict dependency.
hello = Program('hello.c')
Depends(hello, 'other_file')
The following scripts are also accepted.Program('hello.c')
Depends('hello', 'ho.cpp')
-Construction Environment
env = Environment(CC = 'gcc', CCFLAGS = '-O2')
env.Program('foo.c')
To make it default settings (so that you can write Program('foo.c') instead of env.Program('foo.c')),DefaultEnvironment(CC = 'gcc')
- SConscript(['subdirectory/SConscript']) for hierarchical build,
- Program(['foo.cpp', 'bar.cpp']) makes build target foo (looks scons gets the name from the first item in the list, not where the main function exists). Default(Program(['foo.cpp', 'bar.cpp'])) to set it as the default target.
(*) OMake official site says "There is no need to code in Perl (cons), or Python (scons)." ;)
Thursday, September 2, 2010
So what am I doing now (again)
Now I work for Polygon Pictures as a freelancer and working for some big project. It is O.K, I wish if my work could be a little bit more challenging since it's one of the easiest works I've ever done, but working with artists is always fun.
Apart from my work, I'm trying to make something interesting (interesting for CG guys), but I'm not going to tell you what it is since nothing is worth mentioning until you show an image is an unwritten rule all over the CG industry.