PMG
http://forum.pmg.org.ru/

NVidia Cg
http://forum.pmg.org.ru/viewtopic.php?f=4&t=8064
Страница 1 из 1

Автор:  DiabloNT [ 29 ноя 2010 01:36 ]
Заголовок сообщения:  NVidia Cg

Уважаемые форумчани!
Я совсем недавно начал интересоваться геймдевом и 3D графикой в принципе и капашась на просторах рунета забрел на сайт NVidia с описанием некоего языка Cg (C for Graphic) из их туториала я не особо понял что он из себя представляет - как я понял, то это некая надстройка над Direct3D и OpenGL.
Вопрос следующий: кто ни будь пользовался сим продуктом? если да, то верно ли мое понимание его? ну и вообще хотелось бы краткого объяснения что это за продукт и "с чем его едят". Вполне подойдет пинок в нужном направлении (можно и на буржуйском языке, но на русском было бы лучше).

Надеюсь понятно объяснился:) Заранее спасибо.

Автор:  bad_duck [ 29 ноя 2010 10:30 ]
Заголовок сообщения:  Re: NVidia Cg

DiabloNT, да это надстройка: CG - один из высокоуровневых языков программирования шейдеров (обычно используется для DirectX). А шейдер - программа которую выполняет видеокарта (рассчитывает и отрисовывает), в отличие от обычных программ, которые рассчитываются с помощью процессора.
Изучение шейдеров я начал именно с CG, скачал урок с gamedev про флаг который колеблется и его освещает лампочка, и начал ковырять код, но потом перешел на GLSL (обычно используется для OpenGL), там проще (для понимания) передаются данные из программы в шейдер. Подробнее здесь: http://ru.wikipedia.org/wiki/%D0%A8%D0% ... 0%B5%D1%80

Автор:  Da Man [ 30 ноя 2010 00:37 ]
Заголовок сообщения:  Re: NVidia Cg

Цитата:
но потом перешел на GLSL (обычно используется для OpenGL)

Поправочка, GLSL всегда используется исключительно для OpenGL

Автор:  DiabloNT [ 03 дек 2010 06:54 ]
Заголовок сообщения:  Re: NVidia Cg

Da Man писал(а):
Цитата:
но потом перешел на GLSL (обычно используется для OpenGL)

Поправочка, GLSL всегда используется исключительно для OpenGL


Ну я не до такой степени чайник:) но спасибо за уточнение ;) . И уйдя от темы, хочу спросить про GLSL и OGL.
У меня есть рукописный импортер из 3DS файлов, но в них нет нормалей (что по сути оооочень обидно) и нормали приходилось рассчитывать с помощью ЦП, а высчитывать нормали даже для 5 000 вершин - довольно большая нагрузка (по планам придется рендерить фотореалестичные модели). Получается шейдеры как раз помогают переложить это действо на видяху? (где то видел краем глаза, что в Dx есть готовые ф-ции для этого, но вот в OGL такой халявы нету:))

P.S. если можно, то был бы признателен за примерчик того, как это реализовать (я предполагаю что код будет довольно коротким). И до кучи еще один пинок в статьи (книги) по GLSL.
P.P.S. до геймдева, увы, нет доступа на работе, а дома, обычно, уже совсем не до того.

Автор:  bad_duck [ 03 дек 2010 10:19 ]
Заголовок сообщения:  Re: NVidia Cg

Нормали можно один раз при загрузке рассчитать, а если требуется анимация, то нужно использовать скелетную анимацию, там не надо заново рассчитывать нормали с помощью векторного произведения, а можно просто перемножить каждую нормаль на матрицу нужной кости (костей), при этом если эти расчеты шейдер делает, то получается очень быстро. Из статей посоветую это: http://gpwiki.org/index.php/OpenGL:Tuto ... nes_System а для переноса расчета в шейдер эту: http://www.opengl.org/wiki/Skeletal_Animation Ну это конечно если есть желание самому писать ;)

Автор:  DiabloNT [ 03 дек 2010 19:20 ]
Заголовок сообщения:  Re: NVidia Cg

Хм... а если уйти от скелета (обычное вращение "литых" объектов), то по сути можно нормали умножать на матрицу трансформации?

P.S. про кости почитаю, но позже (ссылки сохранил), т.к. это более высокий уровень (мне еще рановато браться за это), надо сначала создать свою либу с полезными и хорошо реализованными ф-циями :)

Автор:  bad_duck [ 03 дек 2010 21:35 ]
Заголовок сообщения:  Re: NVidia Cg

ну да, и тоже в шейдере.

Автор:  DiabloNT [ 04 дек 2010 06:06 ]
Заголовок сообщения:  Re: NVidia Cg

bad_duck писал(а):
ну да, и тоже в шейдере.

вот только на счет книги по GLSL не понял ;) что лучше почитать? желательно именно книгу, а не статью:) и не по OGL в общем, с более узконаправленную. и на этом мои вопросы наверно закончатся.:) по крайней мере в этой теме.

P.S. в OpenGL Superbook есть материал по шейдерам. стоит читать? или есть более великие труды?:)

Автор:  bad_duck [ 04 дек 2010 11:45 ]
Заголовок сообщения:  Re: NVidia Cg

Книгу посоветовать не могу - сам по урокам и статьям учусь. Вот отличные уроки (с исходниками) про шейдеры и не только: http://wingman.org.ru/ (только сайт иногда не доступен).
Полезная статья про передачу в шейдер массива данных: http://wiki.gamedev.net/index.php/OpenG ... mp_Mapping
Ну еще пример: http://fabiensanglard.net/bumpMapping/index.php
В Superbook'е читал про шейдеры, но мне не понравились, они отличаются от уроков wingman'а.

Автор:  DiabloNT [ 05 дек 2010 12:47 ]
Заголовок сообщения:  Re: NVidia Cg

Спасибо, буду читать и точить зубы об гранит:)

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/