Shader Development Files
Шэйдр хийхээр шийдсэн бол дор хаяж хоёр файлтай ажиллана. *.sl өргөтгөлтэй RSL эх код болон ямар зурагч ашиглахаар шийдсэнээс шалтгаалан төрөл бүрийн өргөтгөлтэй байж болох хөрвүүлэгдсэн файл. RSL код дотор агуулагдах шэйдртэйгээ ижил нэртэй эх кодын файл нь ASCII форматын текст файл байна. Хөрвүүлэгдсэн файл нь ямар дизайнтай зурагч ашиглаж байгаагаас шалтгаалан доторхи бүтэц нь ялгаатай.
Шэйдр нь нийлмэл комплекс бүтэцтэй болж эхлэхэд файлын сантай холбох хэрэгтэй. Эдгээр сан нь *.h өргөтгөлтэй, препроцессор макрогийн тусламжтай дурын кодод багтан ажиллах чадвартай. Олон шэйдрүүдийг нэгэн зэрэг удирдан зохицуулж, хөрвүүлэх арга хэрэгтэй болдог. Үүний тулд Perl, Python скрипт эсвэл GNU-гийн Make програм ашиглаж болно. Энэ талаар дараагийн бүлэгт дэлгэрэнгүй үзнэ.
Шэйдр нь нийлмэл комплекс бүтэцтэй болж эхлэхэд файлын сантай холбох хэрэгтэй. Эдгээр сан нь *.h өргөтгөлтэй, препроцессор макрогийн тусламжтай дурын кодод багтан ажиллах чадвартай. Олон шэйдрүүдийг нэгэн зэрэг удирдан зохицуулж, хөрвүүлэх арга хэрэгтэй болдог. Үүний тулд Perl, Python скрипт эсвэл GNU-гийн Make програм ашиглаж болно. Энэ талаар дараагийн бүлэгт дэлгэрэнгүй үзнэ.
The Basic Tools
Зөв хэрэгсэлээ сонгож чадвал таны шэйдрийн хурд болон зохион байгуулалт гайхалтай сайжирна. Шэйдр хөгжүүлэх олон янзын програмууд байдаг. Уран бүтээлч, зураач талруугаа хүмүүст тохиромжтой график интерфэйстэй програмууд ч олон бий. Иймэрхүү програмын сул тал нь шэйдр дотор ямар зүйл болоод байгааг мэдэх бололцоо огт байдаггүй. Тиймээс гаднаа гяланцаг дотроо паланцаг гэдэг шиг л яст мэлхий шиг удаан ажиллагаатай шэйдр хийчихэж магадгүй. Тэгээд зогсохгүй өөрийн алдааг нялзааж зурагчын удааныг гайхдаг. Одоо эдгээр багаж хэрэгслийн давуутай болон сул талуудыг харцгаая.
Text Editors
Шэйдр хийж болох хамгийн энгийн арга бол текст засварлагчыг ашиглах. ASCII дэмждэг бол ямар ч текст засварлагч байсан болно. Шэйдр бичихдээ Rich Text формат болон Майкрософтын .doc форматыг хэзээ ч ашиглаж болохгүй. Энгийн текст засварлагч нь эдгээрийг бодвол хурдтай бөгөөд хайх солих үйлдлийг өөртөө агуулсан байдаг. Энгийн хэдэн мөр шэйдр бичихэд текст засварлагч нь асуудалгүй боловч хэдэн зуун мөртэй код дотор амархан төөрөх нь тодорхой.
IDE Programs
IDE нь integrated development environment гэсэн үгийн товчлол. Өөрөөр хэлбэл код л бичихэд зориулсан тусгай функцуудтай текст засварлагч гээд ойлгочиход болно. Зарим IDE нь тусгайлан ямар нэг хэл болон группыг онцлон анхаарч түүндээ тохиромжтойгоор бүтээгдсэн байдаг. Шэйдр хөгжүүлэхэд ашигладаг IDE нь нээлттэй, олон боломжыг багтаасан маш олон програмчлалын хэлийг таних чадвартай байвал тохиромжтой. Зарим нь яг IDE биш ч гэсэн Notepad ашиглаж бичсэнээс мянга дахин илүү үр дүнтэй.
Өргөн хэрэглэгддэг нь Vim, Nedit, XEmacs, ба Emacs. Эдгээр програмын зарим нь RSL-ийг дэмждэг төдийгүй синтаксыг тодруулах болон шэйдрийг хөрвүүлж харах зэрэг хэрэглэгчийн функц агуулсан байдаг. Миний хувьд XEmacs-ийг ашигладаг. Энэ засварлагч нь Пиксарын Стив Мэйгийн бүтээсэн RSL модулийг дэмждэг. Энэ модулийн хөгжүүлэлтийг хэд хэдэн хүн хийдэг. Номыг дагалдах CD дээр модулийг багтаасан байгаа. Хамгийн их хэрэглэдэг нь Vi болон Vim ( сайжруулсан Vi ) юм. Vi-г хэрэглээд сурчихсан байхад маш хүчирхэг хурдтай. Үүнийг ашигладаг зарим програмист аймшигтай хурдан ажиллаж байхыг хараад биширсэн. Vim нь график интерфэйсгүй болохоор жаахан төвөгтэй. Команд промпт болон шел дээр ажилладаг. Шэйдр бичдэг хүмүүст зөвлөхөд Vi эсвэл Vim талаар наад захын мэдлэгтэй байх хэрэгтэй. (Хэрэв Линукс систем ашигладаг бол) . Vi нь виртуал хэлбэртэйгээр бүх платформ дээр байдаг. Дундаас дээш хэмжээтэй ихэнхи студи Vi-г суулгаж хэрэглэдэг бичигдээгүй дүрэмтэй болсон гэхэд хилсдэхгүй шүү. Ихэнхи шэйдр хөгжүүлэгчид IDE-г сайн загварчлагдсан функцуудын сантай хамтатган хэрэглэдэг. Мөн GNU Make програмыг өргөн ашигладаг. Хэрэв график интерфэйстэй шэйдр хөгжүүлэх програм ашиглах бол эдгээрийг мартах хэрэгтэй. Шэйдр хөгжүүлэгч маш их бичих хэрэгтэй учраас IDE програмыг эхнээс нь төгсгөл хүртэл судалж сайтар эзэмших хэрэгтэй.
Эдгээр багажаас зайлсхийх гол шалтгаан нь үүсгэсэн шэйдрийн үр дүн бага, дебаг хийж уншихад үнэхээр хэцүү код үүсгэдэг. Өөр нэг том сул тал нь ганцхан мөр код бичээд шийдчих асуудлыг гурав дөрвөн зангилаа ашиглаж хийх тохиолдол гардаг. Зарим нь тайлбар бичих бололцоог олгодог ч ихэнхид нь байхгүй. Иймээс шэйдрийг цааш хөгжүүлэх боломж бага , багийн бусад нөхөдтэйгээ хамтран хэрэглэхэд ихээхэн саадтай тулгарна. Эцэст нь хэлэхэд шэйдрт өчүүхэн жижиг засвар хийхэд л дахин хөрвүүлэлт хийх шаардлагатай болдог. Энэ нь 3D програмын материал засварлагч ашигладаг 3D уран бүтээлчдэд асуудал үүсгэдэг.
Хэрвээ танай продакшн шэйдр TD цөөхөнтэй, бүтээл хийх тал руугаа давуутай ажилладаг бол график интерфэйстэй хэрэгсэл ашиглах нь таны цорын ганц сонголт юм. Өөр нэг авууштай тал нь прото төрлийн шэйдрийг маш хурдан үүсгэдэг. Хэрвээ таны шэйдр цэвэр, оновчтой байх шаардлагагүй, код бичихээс жийрхэж байгаа бол график интерфэйстэй хэрэгслийг ашиглан шэйдрийг хурдан хугацаанд үүсгэн туршиж болно. Хамгийн өргөн хэрэглэгддэг нь багажууд Shaderman, Пиксарын MtoR, V-shade, Sidefx-ийн Houdini. Ашиглахад үнэ төлбөргүй болохоор Shaderman-ыг нээлттэй код хөгжүүлэгчид их ашигладаг. Shaderman нь блок гэж нэрлэгддэг зангилааг XML файл хэлбэртэйгээр ашигладаг. Иймээс RSL , XML тагууд, shaderman-ий үүсгэсэн кодын конвенцийг мэдэж байхад өргөтгөн ашиглах боломжтой.
Shaderman нь шэйдинг блокыг холбож салгахад автоматаар шинэчлэн харуулдаг. Хэрэв хэрэглэгч зангилаа үүсгээд түүндээ код нэмэн бусадтай нь холбох бололцоотой болвол үнэхээр гайхалтай. Тэгвэл график интерфэйсийн хурдтай ажиллагааг RSL кодын давуу талтай хослуулах боломжтой болно. Shaderman -ий зохиогч шинэ загвар дээрээ ажиллаж байгаа. Магадгүй ийм ажиллагаа боломжтой болох ч юм билүү. Пиксарын Слим нь хамгийн өргөн ашиглагдаж байгаа шэйдр бүтээх хэрэгсэл юм. RenderMan Artist Tools (RAT) ыг худалдан авснаар Slim-ийг ашиглах боломжтой болно. Энэ хэрэгсэл нь байнга хөгжиж шинэчлэгдэж байдаг. Tcl-ийн урьдчилан хөрвүүлэгдсэн командуудын багцыг агуулсан Tcl\Tk болон Slim форматтай файлыг ашиглан өргөтгөл хийх боломж ихтэй. Slim-ийн бас нэг давуу тал бол даалгаврыг автоматаар биелүүлэх чадвартай скриптийг батч маягаар ажиллуулах чадвар юм. Энэ чадвар нь хэдэн зуун шэйдрийг дахин дахин байгуулж, хөрвүүлэлт хийдэг томоохон продакшнуудад маш хэрэгтэй. Ийм продакшнуудад автомат ажиллагаа зайлшгүй байх шаардлагатай
Өргөн хэрэглэгддэг нь Vim, Nedit, XEmacs, ба Emacs. Эдгээр програмын зарим нь RSL-ийг дэмждэг төдийгүй синтаксыг тодруулах болон шэйдрийг хөрвүүлж харах зэрэг хэрэглэгчийн функц агуулсан байдаг. Миний хувьд XEmacs-ийг ашигладаг. Энэ засварлагч нь Пиксарын Стив Мэйгийн бүтээсэн RSL модулийг дэмждэг. Энэ модулийн хөгжүүлэлтийг хэд хэдэн хүн хийдэг. Номыг дагалдах CD дээр модулийг багтаасан байгаа. Хамгийн их хэрэглэдэг нь Vi болон Vim ( сайжруулсан Vi ) юм. Vi-г хэрэглээд сурчихсан байхад маш хүчирхэг хурдтай. Үүнийг ашигладаг зарим програмист аймшигтай хурдан ажиллаж байхыг хараад биширсэн. Vim нь график интерфэйсгүй болохоор жаахан төвөгтэй. Команд промпт болон шел дээр ажилладаг. Шэйдр бичдэг хүмүүст зөвлөхөд Vi эсвэл Vim талаар наад захын мэдлэгтэй байх хэрэгтэй. (Хэрэв Линукс систем ашигладаг бол) . Vi нь виртуал хэлбэртэйгээр бүх платформ дээр байдаг. Дундаас дээш хэмжээтэй ихэнхи студи Vi-г суулгаж хэрэглэдэг бичигдээгүй дүрэмтэй болсон гэхэд хилсдэхгүй шүү. Ихэнхи шэйдр хөгжүүлэгчид IDE-г сайн загварчлагдсан функцуудын сантай хамтатган хэрэглэдэг. Мөн GNU Make програмыг өргөн ашигладаг. Хэрэв график интерфэйстэй шэйдр хөгжүүлэх програм ашиглах бол эдгээрийг мартах хэрэгтэй. Шэйдр хөгжүүлэгч маш их бичих хэрэгтэй учраас IDE програмыг эхнээс нь төгсгөл хүртэл судалж сайтар эзэмших хэрэгтэй.
Shader Authoring Tools
График интерфэйстэй шэйдр хөгжүүлэх хэрэгслүүд нь дундаж түвшний хэрэглэгчдэд тун тохиромжтой. Эдгээр нь зангилааг ашигладаг бөгөөд композит хийдэг Shake, Digital Fusion, Nuke-тэй ижил зарчимтай. Зангилаа нь тодорхой зорилгоор өмнө бичигдсэн хэсэг код эсвэл функцууд юм. Эдгээрийн зарим нь маш сайн загварчлагдсан байдаг. Үүний тод жишээ нь Pixar-ийн Slim бөгөөд Tcl-ийн динамик функцыг ашигладаг. Tcl функц нь Tcl-ийн бүхий л боломж чадварыг ашиглаж RSL кодыг үүсгэдэг. SLIM нь тун хүчирхэг болохоор хэд хэдэн киног бүтээхэд ашиглагдсан. Эдгээр багажаас зайлсхийх гол шалтгаан нь үүсгэсэн шэйдрийн үр дүн бага, дебаг хийж уншихад үнэхээр хэцүү код үүсгэдэг. Өөр нэг том сул тал нь ганцхан мөр код бичээд шийдчих асуудлыг гурав дөрвөн зангилаа ашиглаж хийх тохиолдол гардаг. Зарим нь тайлбар бичих бололцоог олгодог ч ихэнхид нь байхгүй. Иймээс шэйдрийг цааш хөгжүүлэх боломж бага , багийн бусад нөхөдтэйгээ хамтран хэрэглэхэд ихээхэн саадтай тулгарна. Эцэст нь хэлэхэд шэйдрт өчүүхэн жижиг засвар хийхэд л дахин хөрвүүлэлт хийх шаардлагатай болдог. Энэ нь 3D програмын материал засварлагч ашигладаг 3D уран бүтээлчдэд асуудал үүсгэдэг.
Хэрвээ танай продакшн шэйдр TD цөөхөнтэй, бүтээл хийх тал руугаа давуутай ажилладаг бол график интерфэйстэй хэрэгсэл ашиглах нь таны цорын ганц сонголт юм. Өөр нэг авууштай тал нь прото төрлийн шэйдрийг маш хурдан үүсгэдэг. Хэрвээ таны шэйдр цэвэр, оновчтой байх шаардлагагүй, код бичихээс жийрхэж байгаа бол график интерфэйстэй хэрэгслийг ашиглан шэйдрийг хурдан хугацаанд үүсгэн туршиж болно. Хамгийн өргөн хэрэглэгддэг нь багажууд Shaderman, Пиксарын MtoR, V-shade, Sidefx-ийн Houdini. Ашиглахад үнэ төлбөргүй болохоор Shaderman-ыг нээлттэй код хөгжүүлэгчид их ашигладаг. Shaderman нь блок гэж нэрлэгддэг зангилааг XML файл хэлбэртэйгээр ашигладаг. Иймээс RSL , XML тагууд, shaderman-ий үүсгэсэн кодын конвенцийг мэдэж байхад өргөтгөн ашиглах боломжтой.
Shaderman нь шэйдинг блокыг холбож салгахад автоматаар шинэчлэн харуулдаг. Хэрэв хэрэглэгч зангилаа үүсгээд түүндээ код нэмэн бусадтай нь холбох бололцоотой болвол үнэхээр гайхалтай. Тэгвэл график интерфэйсийн хурдтай ажиллагааг RSL кодын давуу талтай хослуулах боломжтой болно. Shaderman -ий зохиогч шинэ загвар дээрээ ажиллаж байгаа. Магадгүй ийм ажиллагаа боломжтой болох ч юм билүү. Пиксарын Слим нь хамгийн өргөн ашиглагдаж байгаа шэйдр бүтээх хэрэгсэл юм. RenderMan Artist Tools (RAT) ыг худалдан авснаар Slim-ийг ашиглах боломжтой болно. Энэ хэрэгсэл нь байнга хөгжиж шинэчлэгдэж байдаг. Tcl-ийн урьдчилан хөрвүүлэгдсэн командуудын багцыг агуулсан Tcl\Tk болон Slim форматтай файлыг ашиглан өргөтгөл хийх боломж ихтэй. Slim-ийн бас нэг давуу тал бол даалгаврыг автоматаар биелүүлэх чадвартай скриптийг батч маягаар ажиллуулах чадвар юм. Энэ чадвар нь хэдэн зуун шэйдрийг дахин дахин байгуулж, хөрвүүлэлт хийдэг томоохон продакшнуудад маш хэрэгтэй. Ийм продакшнуудад автомат ажиллагаа зайлшгүй байх шаардлагатай
The Shader Compiler
Шэйдр хөрвүүлэгч нь зурагчын чухал бүрэлдхүүн хэсэг. Үүний үндсэн үүрэг нь RSL эх кодыг цэгийн эцсийн өнгийг тооцоолоход хэрэгтэй машины код болгон хувиргана. Шэйдр хөрвүүлэгчийнхээ бүхий л боломжуудыг мэдэж байх шаардлагатай. Шэйдр хөрвүүлэгчийнхээ тусламж руу нэвтрэхдээ ихэвчлэн доорхи командыг ашиглана. shadcompiler -h
shadcompiler --help
shadcompiler нь тухайн зурагчийн хөрвүүлэгч програмын нэр юм. Энэ нь ихэвчлэн програмын бин директор дотор байдаг. Дээрхи тусламж нь багасгасан хувилбар. Програмын баримттай танилцаж хэрхэн ажилладаг талаар мэдэх шаардлагатай. Хамгийн өргөн ашиглагддаг шэйдр хөрвүүлэгчид нь дараахи нэртэй.
Photo Realistic RenderMan shader
3Delight shaderdl
Aqsis aqsl
Pixie sdrc
Render DotC shaderdc
No comments:
Post a Comment