Drake's Weblog

2 minute read

Sony Pictures Imageworks 在完成了數部叫好又叫座的作品後,趕在今年(2009)年中(7月底),亦即 SIGGRAPH 2009 的前一天,由他們的技術長(CTO)Rob Bredow 對外做了如下的發佈:

Some of the smartest and most dedicated engineers in computer graphics have put their experience and passion into the development of these tools, and we are very excited to be able to share them with a much wider audience.

五項技術被開放源始碼了

  • OSL, a programmable shading language for rendering.
  • Field3d, a voxel data storage library.
  • Maya Reticule, a Maya Plug-in for camera masking.
  • Scala Migration, a database migration tool.
  • Pystring, python-like string handling in C++.

Imageworks 這個團隊,以 1) 擅長製作逼真的視覺特效;2) 高品質的角色動畫;3) 以及整合新穎且有創意的技術進製作流程…這幾點為人所稱道,他們已經在 Linux 作業品台上深耕多年,使用了大量開放源碼的技術。如今,這家公司決定把一些技術回饋給開源社群,造福更多的人。這些開源出來的程式碼可以免費地被世人使用,不論你的動畫小組是大是小。同時,每一項開源出來的技術背後,都有一群來自 Imageworks 公司,擁有高度熱情的程式技術人員的支援與維護,他們為了讓這些技術被大量採用而努力不懈。簡單來說,開源這件事,本身的目的,即在於創造出更多人使用這些技術結晶,同時進而改善它。

對於特效與動畫產業(Visual Effects and Animation industry)來說,每個公司自行開發的內部技術,一直以來佔有某種程度的重要性與貢獻,但隨著近幾年來,愈來愈多的內部技術與公開的商業軟體(ex, Autodesk Maya, Pixar’s RenderMan, Side Effects 的 Houdini, …)的整合愈成趨勢(事實上,幾乎所有新興的公司都是採取這樣的作法的,除了少數具有傳統的特效動畫公司,他們因為歷史因素而保留有不少開發數年的工具~)。也因此,當這些動畫公司們(包括個人),開始彼此之間分享技術與程式後,慢慢地,不管是某種業界標準或是常用的工具就會變得更加有影響力,同時也變得更好用了。

舉個例子,這個產業最有名的第一個 open source 的例子,就首推於 2003 年,由 ILM 所開源出來的 OpenEXR, 一個 16-bit 的半精確度浮點數的檔案格式開始,OpenEXR 的出現,整個慢慢地統一了不一的圖片檔案格式,同時也把歷史悠久且過時了的 Tiff 擠掉了。

OSL – a programmable shading language for rendering

Open Shading Language,一個開源的 shading language,就像 RSL (RenderMan), Cg (NVidia), GLSL (OpenGL), HLSL (DirectX), … 等一樣,是個用來描述 BRDF 模型下,surface 或是 volume 的 shading material reaction to lights。OSL 除了訂制了語法,同時提供了 shader compiler, shader evaluator, shader library,它甚至可以一定程度的轉成 GPU shader。

最有趣的是,這個計畫的主持人之一是 Larry Gritz!! Larry Gritz 同時有一個叫 OpenImageIO 的 open source project,我的天,這個人學生時代就是不得了的人,他的同學都覺得他很可敬(與可怕?).除了非常神;單靠一個人就震撼了 Pixar 技術團隊而不得不網羅它,到最後的 Pixar 告他;接著到 NVidia 主持了 Gelato 計畫…同時還執行 open source projects,真的就是有人的精力用不完 :)

Field3d – a voxel data storage library

一個 Imageworks 開發來描述 volume data 的資料結構。

Maya Reticule – a Maya Plug-in for camera masking

一個 Maya plugin + MEL,在 camera 上加諸了一些功能的 camera rig。

Scala Migration – a database migration tool

就是一種 CVS?!

Pystring – python-like string handling in C++

把 Python 裏頭好用的字串功能給加進了 C++ STL 的 std::string!!!

comments powered by Disqus

Recent posts

Categories

About

You're looking at Drake's words or statements. All opinions are my own.