#61
22 ноября 2008 в 07:05
хм, в ку3 вытянутый источник света можно было сделать светящейся текстурой ), а если сделать её прозрачной? получится вытянутый источник света? Если надо, чтобы светила во всн стороны, тогда 6 браней браша с такой текстурой <br />:)<br /><br />сам не делал так только догадки
#62
22 ноября 2008 в 07:06
ЗЫ а обычный гткрадиант не приспособить?<br />зачем отдельный редактор?
#63
22 ноября 2008 в 08:46
имхо с++ в рендере глупость.<br />я понимаю еще аи но не рендер.
#64
22 ноября 2008 в 11:19
Barnes<br />Не получилось совместить С и Direct3D 9, вот так получилось. =\<br /><br />
хм, в ку3 вытянутый источник света можно было сделать светящейся текстурой ), а если сделать её прозрачной? получится вытянутый источник света? Если надо, чтобы светила во всн стороны, тогда 6 браней браша с такой текстурой<br />Ввиду имелся относительно честный способ построения вытянутых источников света, чтобы объекты, освещаемые им, еще и тени отбрасывали, и делали это относительно правильно. Создание таких лайтов у меня еще не завершено, но глюки уже предсказаны. Это глюки распространения света, когда свет отдают только точки на концах лампы, после правки - глюки теней, выглядящие так, будто кто-то положил на полигон без настроенных координат, текстуру, и подобные им.<br /><br />
ЗЫ а обычный гткрадиант не приспособить?<br />зачем отдельный редактор?<br />Не подходит он по потребностям. Лишнего слишком много, имхо. Вот то ли дело - меню объектов, получаемое через хедеры игры. Сначала натыкал брашей, лайтов, текстурки подогнал, потом ткнул где надо пару акторов, и плеер старт, откомпилил - и вот оно, можно смело поиграть в превью (хотя тени и шейдеры уже должны быть видны в окне вьюпорта камеры).
#65
22 ноября 2008 в 11:41
имхо с++ в рендере глупость.<br />я понимаю еще аи но не рендер.<br />Это потому, что ты не знаешь, как его правильно в С++ организовать ;)<br />Удобнее, удобнее.
#66
22 ноября 2008 в 11:50
Barnes, KRIGSSVIN<br />Я бы сказал, что всё зависит от программиста. Лично я в рендерах предпочитаю С, так проще вносить сложные, непредвиденные межмодульные связи. Либо ты чётко угадаешь с тем, каким должен быть объект, его свойства, либо будешь загребать и огребать проблемы. Про игровую логику всё понятно, это в каждом учебнике написано "если внимательно посмотреть вокруг, весь мир состоит из объектов". Но рендеры, OpenGL, OpenAL это машины состояния, в каких-то случаях нужно проделать одно количество шагов, в каких-то другое, где-то можно программирование железа пропустить ибо контекст уже в нужном нам состоянии. Здесь С++ помощник хилый ибо он вынужден будет лежать поверх очень сложной логики машины состояний. Оформить рендер как с++ ящик возможно имеет смысл. А по поводу приведённого образца кода ничего не могу сказать, работа с векторами это далеко не рендер и как оформить эту математику это дело вкуса. Здесь чётко видны объекты, их свойства, события и я скорее за С++. Но есть такая гадость как деление на 0. В каких-то случаях это невозможный сценарий, в каких-то случаях ф-ция должна возвратить 0, а в каких-то случаях будет ветвление на альтернативную математику. Так что кому как удобнее, так он и работает.
#67
22 ноября 2008 в 12:41
Да, деление на ноль - штука интересная. =) Говорят, что на ноль делить нельзя, а нет - можно, просто формулы нужны из высшей математики, где это практикуется.<br /><br />
Это потому, что ты не знаешь, как его правильно в С++ организовать <br />Удобнее, удобнее.<br />Удобнее-то да, удобнее, но только при правильном раскладе. На С у меня, максимум, получилось реализовать Direct3D 8-рендер. Реализация Direct3D 9-рендера совершенно иная. Покуда в Direct3D 8 некоторые важные при инициализации фишки отлично влезают в структуру, Direct3D 9 для этих же фишек требует класс, рассматривая такой ход как ошибку. Direct3D 10 и вовсе просит для себя компилятор, аналогичный Visual C++ 2005.<br /><br />Я предпочел немного разбить функционал рендера, выделив под шейдеры отдельную dll, которая будет ими оперировать, впрочем, это пока только теория. На скриншоте моделвьювера отчетливо видно, что на шлеме кэтсолдиера светятся глаза. Это удалось сделать при помощи обычного экспорта модели из макса при помощи maxScript. Эти глаза - всего лишь самосветящийся цвет. Далее, по похожей схеме будет достигаться подключение шейдерных эффектов к отрисовке.
#68
22 ноября 2008 в 12:55
Barnes<br />Не получилось совместить С и Direct3D 9, вот так получилось. =\<br />да там сдк под с++
#69
22 ноября 2008 в 13:55
Однако, самое главное, что хочу сказать про спор о том, что лучше и быстрее - С или С++, так это то, что, прежде всего, надо самому программировать на уровне своего языка. Что на асме можно выдать настоящий шедевр, что на С++ написать тихий и страшный ужас, олицетворяющий самые ужасные ночные кошмары программистов. Проблемы - вероятная нечитаемость кода человеком, различные выкрутасы с компилом, и тому подобное. Однако, не все на Земле программисты - Кармаки. =) Кому-то не хватит функционала современного С++, а кто-то будет радоваться жизни, набирая машинные коды. ;D <br /><br />Проще говоря - от более высокой версии языка руки программиста не выпрямляются.
#70
22 ноября 2008 в 14:05
Читаемость кода пропорциональна затраченному времени ;)