Теперь заходим в закладку Linker->Additional Dependencies и указываем там “.\ lib\shader.lib” (соответственно, если вы не копировали “.lib файлы локально в проект, то указываем тут полный путь до них “c:\Program Files\Alias\Maya7.0\devkit\mentalray\lib\nt\ shader.lib”).

В свойствах проекта, в закладке C/C++->Code Generation->Runtime Library выбираем “Multi-threaded Debug DLL (/MDd)” для Debug режима и “Multi-threaded DLL (/MD)” для Release соответственно.

Теперь следует все то же самое проделать и для Release режима компиляции.

Следующий шаг не обязателен, но его желательно проделать, чтобы избежать следующего warning’a при компиляции шейдера:

LINK :    warning    LNK4098:    defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB: library

В свойствах проекта в поле Linker->lgnore Specific Library нужно прописать следующее:

libc.lib;libcmt.lib;msvcrt.lib;libcd.lib;libcmtd.lib для Debug режима (Multithreaded Debug DLL (/MDd) )

libc. lib; libcmt. lib ; libcd. lib ; libcmtd. lib ;msvcrtd. lib для Release режима (Multithreaded DLL (/MD))

Подробнее об этой проблеме и зачем все это нужно делать, можно узнать по этому адресу:    http://

msdn.microsoft.com/library/default.asp?url=/library/en-us/wcepbguide5/

html/wce50errLinkerToolsWarningLNK4098.asp

Поздравляю! Ваш проект полностью готов к работе.

Первый шейдер

Настроив проект, приступаем непосредственно к написанию первого шейдера. Открываем созданный ранее файл my_constant.cpp и вписываем туда следующий код:

#pragma once #include <math.h>

#include “shader.h”

typedef struct {

miColor color;

}my constant_t;

extern "c"

{

DLLEXPORT int my_constant_version(void) {return(l);}

DLLEXPORT miBoolean my_constant(miColor *result, miState *state, my_constant_t *paras)

{

*result = *mi_eval_color(&paras->color); return(miTRUE);

}

}

Это код самого простого constant шейдера, который возвращает заданный цвет вне зависимости от освещения. Constant, как ни странно, может оказаться достаточно полезным и часто используемым шейдером.

Подробнее суть кода будет описана чуть ниже, а сейчас просто компилируем код, чтобы увидеть его в работе. На выходе должен получиться my_mr_shaders.dll, это и есть функциональная часть нашего шейдера.

Следующим шагом нам необходимо будет создать файл с названием my_mr_shad-ers.mi. Для этого воспользуйтесь вашим любимым текстовым редактором, например: Notepad, WordPad, Textpad или UltraEdit и т.п., но только не Word. Я бы рекомендовал использовать именно Textpad или UltraEdit, так как это наиболее продвинутые и удобные текстовые редакторы, но это дело вкуса. Набираем следующий текст и сохраняем его как my_mr_shaders.mi

declare shader

color "my_constant" (

color "color"    #:    default    1.0    1.0    1.0

)

version 1 apply material #: nodeid 666055 end declare

Готово. Осталось подключить получившийся шейдер к Maya и протестировать. Для этого надо вначале установить шейдер.


⇐ вернуться назад | | далее ⇒