1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

NVidia родила Cg

Тема в разделе "RenderMan", создана пользователем -, 14 июн 2002.

Модераторы: Moderator.
  1. Guest

    Это такой высокоуровневый шейдерный язык, который будет встроен в DirectX 9 и работать на всех современных картах.

    Всё хорошо, если бы не одно но:

    http://www.cgchannel.com/news/2002_6/cg/images/code.jpg

    Уроды. Мало того, что с ошибкой (если это ошибка), так ещё и специально код SL перепоганили. Переписываем:

    color cSpec = phong(Nf, V, phongExp);
    Ci = Oi * (FinalColor+DiffuseColor * (AmbientLight+DiffuseLight)) + SpecularColor*cSpec;

    А перепишем так:

    Ci = Oi * (cFinal+cDiffuse * (lAmbient+lDiffuse)) + cSpecular*phong(Nf, V, phongExp);

    Ну и у кого понятнее? Даже не смотря на мою венгерскую нотацию, которой я стараюсь избегать ;-)

    В ШейдерМене этот шейдер (Фонг) вообще выглядит вот так:

    normal Nf = faceforward(normalize(N), I);
    vector V = -normalize(I);

    Ci = diffusecolor * (ambientcolor * Ka * ambient() + Kd * diffuse(Nf)) + specularcolor * Ks * phong(Nf, V, 1/roughness);

    Понятнее не придумаешь.

    И нахрена им плодить новые шейдерные языки?
     
  2. Guest

    Но по сравнению с ассемблерным кодом, разница не такая уж сильная.
    Т.е. неаписание кросс-компилера -- наверное вполне реально.
    Ясное дело, что на некотором подмножестве шейдеров.
    Неужто можно будет настраивать шейдеры в real-time?
     
  3. Guest

    > Т.е. неаписание кросс-компилера -- наверное вполне реально.
    > Ясное дело, что на некотором подмножестве шейдеров.

    Я тяну эту штуку - она бесплатная - посмотрим.

    > Неужто можно будет настраивать шейдеры в real-time?

    Cg - можно в майке и максе уже сейчас, но скорее всего только под geForce.
     
  4. Guest

    http://www.cgshaders.org/shaders/VertexNoise/
     
  5. Guest

    Cg не встроен в DirectX, это компилер в нормальные директовые шейдеры. То, что отличаются от PRMan'овских, понятно, т.к. NV, как и любой другой монополист, старается продвинуть свое. Хардварные шейдеры есть в максе, но в майке, простите, через какую задницу? Майка вроде бы расширений OGL не пользует пока. А OpenGL 2.0 (в котором реализуется обрезанный рендерман), как стандарт, еще не утвердили и в ближайщие пару лет утвердят.
     
  6. Guest

    На самом деле хоть в майке и нет именно pixel shaders(я надеюсь ПОКА нет - вообще я не понимаю причины, по которой их там нет), но вообще openGL'ные шейдера там есть. Очень простые, конечно, но есть. А как вы думаете рассчитываются те же Lambert/Phong/Blinn во вьюпортах, ы? ;)

    По поводу OpenGL 2.0 - тут Кармак вроде писал, что хочет сделать 1-pass rendering pipeline for Doom3 based on OpenGL 2.0.
    Так что может и не через два года, а полгода-год....?
     
  7. Guest

    Причины, по которой нет в майке шейдеров, равно как и в LW, просты - все нормальные неигровые программы работают со стандартом OpenGL и не используют проприетарных расширений. Поэтому шейдеров нет ВООБЩЕ НИКАКИХ. Lambert, Phong, Blinn рассчитываются процессором. Да, Кармак собирается переписать движок под OGL2.0, ходят слухи, что выйдет D3 для обычных карт, а позже версия под 3DLabs P10 и другие карты, которые будут поддерживать OGL2.0 Может это будет и не через 2 года, но все равно времени потребуется достаточно. Все-таки если OpenGL стандартизируют, то он держится долго, в отличие от латанного-перелатанного DirectX.
     
Модераторы: Moderator.

Поделиться этой страницей