Воскресенье, 24 Ноября 2024, 04:59

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
ArchidoДата: Среда, 05 Июня 2013, 11:11 | Сообщение # 221 | Тема: На чём писать-DX vs OpenGL
Сэнсэй
Сейчас нет на сайте
Цитата (OpenGOO)
Основам комп. графики можно научится и без изучения GAPI, комп. графики это отдельная тема.

Можно. Но я подразумеваю конкретную "часть", привязанную к сегодняшим реалиям и GAPI. Начиная с основ вроде подготовки, трансформации, отрисовки геометрии, работе с Z и Stencil буферами, blend'ом, отрисовки полупрозрачной геометрии, etc и заканчивая сложными шейдерными техниками, которые используются в современных играх. В данном контексте под "комп. графикой" я имел в виду именно это. И оно полностью справедливо как для DX, так и для OpenGL. Разница только в том, каким образом скажем, создается буфер, и каким образом он отдается на отрисовку.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Июня 2013, 11:12
ArchidoДата: Среда, 05 Июня 2013, 10:40 | Сообщение # 222 | Тема: На чём писать-DX vs OpenGL
Сэнсэй
Сейчас нет на сайте
Цитата (OpenGOO)
Ничего забавного здесь нет, новичку (это состояние только временное) надо сразу думать на перспективу, чтобы в будущем не пришлось начинать всё заново.

Есть. Новичку для начала нужно научиться основам комп. графики, без каких-либо привязок куда-либо и задних мыслей. В добавок эти GAPI отличаются по большей части только интерфейсом (ну грубо так), при хорошем знании одного перейти на другой - дело нескольких недель. Что там заново нужно начинать - мне ни разу не понятно.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Среда, 05 Июня 2013, 10:42
ArchidoДата: Среда, 05 Июня 2013, 09:03 | Сообщение # 223 | Тема: На чём писать-DX vs OpenGL
Сэнсэй
Сейчас нет на сайте
Цитата (imperator12)
Если планируется кроссплатформеность то OpenGL, если нет то DirectX однозначно.

Цитата (OpenGOO)
С моей точки зрения лучше начать с OpenGL, поскольку его поддерживают следующие платформы Windows, Linux, OS X, Android, iOS, BlackBerry, но если тебе нужна только Window и ничего кроме неё, тогда уж DirectX будет лучшим решением.

Вот никогда не понимал логику такой аргументации в пользу OpenGL. Приходит новичок с дилеммой - не знает что выбрать, WinApi для него темный лес, о комп. графике понятий похоже практически не имеет... а ему впаривают про кроссплатформенность biggrin И OpenGL ему советуют только в том случае, если он через пару недель уже будет писать под "Windows, Linux, OS X, Android, iOS, BlackBerry", а иначе "DirectX будет лучшим решением" happy Забавно, что аж не описать.

Можно не один год только GAPI и комп. графику изучать, да и кп - это не только графика, там еще очень много разного рода специфичных вещей. Тот кто собирается писать под множество ОС - не задает вопросы вида "OpenGL vs DirectX", и по-моему это очевидно.

GreyGLoomy
Я в свое время начинал с OpenGL (есть мнения, что освоить его проще), glut / glfw не использовал, обвязки над WinApi писал сам (просто было интересно). Потом из интереса пересел за DX, после опыта работы с OpenGL осилил его очень быстро (в целом там только API другое, остальное все аналогично), в итоге после такой процедуры складывается личное впечатление о том, что лучше / удобнее. Попробуй сделать так же smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Четверг, 30 Мая 2013, 08:29 | Сообщение # 224 | Тема: Вопрос-Ответ (C++)
Сэнсэй
Сейчас нет на сайте
Нохчи
Текстурный менеджер будет расстроен, что его оставили без работы smile Там конечно есть небольшой оверхед, но для большинства спрайтов подходит в самый раз. Для динамики (частое создание \ удаление спрайтов) уже имеет смысл вынести текстуру отдельно и закэшировать... Имхо.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Среда, 29 Мая 2013, 18:03 | Сообщение # 225 | Тема: Вопрос-Ответ (C++)
Сэнсэй
Сейчас нет на сайте
Есть некий класс, скажем для 2д игры - это класс спрайта, в котором определены различные параметры-переменные и в том числе хендл текстуры. При создании спрайта указываем (в конструкторе, в методе инициализации, etc) из какого файла грузим текстуру. Путь до файла можно прописать хардкорно в коде, либо использовать какой-нить внешний файл с "конфигурацией" (доп. файл на спрайт или общее хранилище).

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Пятница, 24 Мая 2013, 12:41 | Сообщение # 226 | Тема: DirectX или OpenGL
Сэнсэй
Сейчас нет на сайте
Цитата (Darkle)
Всем привет! Попал в затруднительную ситуацию. Решил программировать графику и не могу решить что выбрать. Знаю что OpenGL кросплатформенный, но в основном пишу под Windows. Вообщем, подскажите.

Вообще без разницы. Что нравится - то и изучай, в идеале нужно оба попробовать - тогда сам все поймешь. Если в программировании скилл небольшой, то OpenGL проще дается как правило.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Пятница, 24 Мая 2013, 05:56 | Сообщение # 227 | Тема: Вопрос-Ответ (C++)
Сэнсэй
Сейчас нет на сайте
А почему бы не взять и не вынести Swap отдельно:
Код

template <class TypeA1, class TypeA2> void Swap(TypeA1 &A1, TypeA2 &A2) {
  TypeA1 tmp = A1;
  A1 = A2;
  A2 = tmp;
}

А потом просто делать:
Код
for (int i = 0; i < x; i++) Swap(a[i][0], a[i][1]);


Если нужно что-то иное, то я не до конца улавливаю мысль того, что нужно.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Вторник, 21 Мая 2013, 13:17 | Сообщение # 228 | Тема: Программист С/C++
Сэнсэй
Сейчас нет на сайте
Зависит от конторы, конечно, но в целом да - без опыта работы над другими проектами (даже своими) и без вышки - шансы равны нулю. Даже если вдруг и позовут на собеседование, то пройти его едва ли удастся, а проработать там тем более (нехватка опыта будет большим фейлом). При обучении в ВУЗе, например, могут взять на стажировку куда-нить в качестве "джуниора", где особых требований не предъявляют (в начале, если дальше ничего не осилишь - то досвидание)... Поэтому в любом случае скилл надо повышать и делать свои небольшие разработки, тогда позже будет гораздо легче устроиться и нормально работать.

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Понедельник, 20 Мая 2013, 14:28 | Сообщение # 229 | Тема: ищу текстуру
Сэнсэй
Сейчас нет на сайте
Цитата (andarky)
я хочу чтобы там были зрители (масса человечков) не делать же их 3D... текстуру надо бесшовную.

А почему бы их не делать билбордами(спрайтами, ориентированными к камере) ? В качестве текстуры для них достаточно отрендерить с анимацией необходимого 3д перса. Вот например тут все "человеки" именно таким образом и рисуются:



C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Понедельник, 20 Мая 2013, 14:35
ArchidoДата: Понедельник, 20 Мая 2013, 14:25 | Сообщение # 230 | Тема: очепятки
Сэнсэй
Сейчас нет на сайте
Цитата (andarky)
Потом в том же рекламном агентстве работали мы с BOSH и вот я по почте общался с какой Юлей с их гл.офиса в Мск. Как-то так утром пишу ей письмо: "Юля, добрый день!" - так надо было, а я опечатку сделал: вместо "Ю" - "Б"... а чо они так рядом на клавиатуре??

По этому случаю мне сразу вспомнилась цитата (18+) с баша smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Понедельник, 20 Мая 2013, 12:03 | Сообщение # 231 | Тема: Сборка мусора(С++)
Сэнсэй
Сейчас нет на сайте
Цитата (Нохчи)
Или имеется ввиду при первом запросе ресурса создать shared_ptr, создать из него weak, сохранить weak и вернуть shared, а при последующих запросах делать weak.lock()?

Именно так.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Понедельник, 20 Мая 2013, 05:51 | Сообщение # 232 | Тема: Сборка мусора(С++)
Сэнсэй
Сейчас нет на сайте
Цитата (Нохчи)
1)Менеджер хранит внутри себя shared_ptr на ресурс, который возвращается при запросе ресурса(соответственно увеличивается счетчик ссылок). Когда какой-либо объект запросивший ресурс уничтожается, уничтожается и его экземпляр shared_ptr, и счетчик ссылок уменьшается. Соответственно, когда все объекты пользовавшиеся ресурсом будут удалены, счетчик ссылок будет равен 1(shared_ptr из самого менеджера). Если бы можно было заставить объект удаляться при счетчик равному 1, а не 0, было бы прекрасно. Но в нашем случае придется через какие-то промежутки времени вручную вызывать метод сборки мусора и проверять

Тут все дело в том, что менеджер не должен хранить в себе shared_ptr на ресурс, ибо он им ни разу не владеет. Внутри менеджера либо weak (обычно нужен именно он), либо вообще без смартов. Тогда при запросе ресурса возвращается shared_ptr с refcount'ом == 1 и если его никуда не "прикрепить", то он сразу же уничтожается при выходе из области видимости.

Еще имеет смысл сразу же их не удалять, а добавлять в некоторую очередь "на удаление". Обычно менеджеру выдается некий лимит по памяти (довольно большой процент от общего кол-ва памяти на железке) и пока он не превышается - совсем удалять ресурс смысла нет. В добавок всегда существует вероятность, что удаленный ранее ресурс может понадобится снова где-то в дальнейшем (для этого в иделале полезно делить ресурсы на постоянные, возобновляемые и одноразовые. Первые никогда не удаляются, вторые удаляются только когда не хватает памяти, третьи - удаляются сразу же), тогда можно пробегать по этой очереди (лучше, конечно, иметь доп. структуру в виде какого-нибудь binary search tree или хэш таблицы, для быстрого поиска) и если такой ресурс найден - то возвращать ему статус "живого" без особых телодвижений. Ну а когда превышаем лимит, то удаляем с конца очереди N'ное кол-во устаревших ресурсов и создаем необходимый.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Воскресенье, 12 Мая 2013, 09:16 | Сообщение # 233 | Тема: Xamarin - есть ли у кого опыт использования?
Сэнсэй
Сейчас нет на сайте
Цитата (AlexRabbit)
Убедительная просьба: топик адресован людям, имеющим реальный опыт работы с этим фрэймворком. Поэтому просьба к тем, кто лишь читал мануал или один раз запускал спрайт по экрану а-ля "Hello, world" сделать над собой усилие и не давать ценных советов. Хотелось бы услышать об опыте использования или попытках использования данного фрэймворка.

Даже странно, что ты решил спросить об этом именно тут, сам ведь знаешь какой здесь контингент в большей степени. Тут программистов то по пальцам можно пересчитать, а тех кто под мобильники пишет - совсем единицы. Ну покупка софта - это вообще отдельная песня.

По теме. Пытался загуглить чего-нить и как-то грустно все... совсем. Даже на англоязычных сходу и не найдешь, есть конечно всякие субъективные "обзоры", но это не совсем то что нужно. Лично я бы попробовал задать этот вопрос (и поискать там же можно) на Gamedev.net и StackOverflow, наверняка найдется тот, кто сможеть толково ответить.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Воскресенье, 12 Мая 2013, 08:56 | Сообщение # 234 | Тема: Почему в С++ нет массивов?
Сэнсэй
Сейчас нет на сайте
Цитата (vicu2010)
Значит это ты УДК написал?!

Именно. Как догадался? biggrin Да, и пусть терь все знают что UDK на Delphi написан happy


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Суббота, 11 Мая 2013, 17:35 | Сообщение # 235 | Тема: Почему в С++ нет массивов?
Сэнсэй
Сейчас нет на сайте
Vinchensoo,
Паскаль вполне годный, плюсую и за ностальгию тоже smile

Сам в классе 9-том за него засел (если точнее - за делфу) и под конец 10-того мог себе позволить делать нечто такое (простенький движок, Delphi + OpenGL):


Сложно сказать, как оно бы было, если я б сразу с плюсов стартанул. Но в то время паскаль мне очень нравился smile , да и переход на плюсы в дальнейшем произошел крайне быстро благодаря делфийскому опыту. Паскаль - это секта happy


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Суббота, 11 Мая 2013, 17:38
ArchidoДата: Суббота, 04 Мая 2013, 13:06 | Сообщение # 236 | Тема: SFML
Сэнсэй
Сейчас нет на сайте
Цитата (Lord_Zeon)
Скорее всего ты снова не прилинковал от своей dll статическую библиотеку которая генерируется с проектом, или что-то еще... Зачем ты себе такие сложности придумываешь? Если ты с трудом тянешь такое, стоит ли сейчас писать это?

+1. А еще я не вижу dllimport'a на стороне экзешника.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Пятница, 03 Мая 2013, 14:23 | Сообщение # 237 | Тема: Почему в С++ нет массивов?
Сэнсэй
Сейчас нет на сайте
Цитата (Xakep)
т.е. при первом проходе цикла память читается с шагом 32 байта (или 64/128 если оптимизируется исключительно под Athlon)

Кэш линия сейчас почти во всех современных процессорах - 64 байта, под нее и надо оптимизировать. А так все правильно сказано, плюсану.

Epsilon
Добавлю, что память должна быть варавнена, ибо это временами заставляет процессор делать два обращения к памяти вместо двух и еще "склеивать" результат, что несомненно замедляет работу, а на большинстве RISC процессоров все это вообще упадет. Старайся писать\читать (и выделять, что тоже важно) из\в память как можно более последовательно, а не хаотично, иначе кэша на все не хватит. + Под характер работы определенного алгоритма можно подогнать алгоритм выделения памяти, что сделает работу с ней более последовательной, и получить в итоге небольшой буст.

Как советовал Xakep, тип на float заменить было бы неплохо, ибо в кэш их влезет в два раза больше (16). Но я вижу три RGB массива, а раз это и правда RGB, то для хранения цвета компоненты этой модели достаточно всего одного байта и в кэш линию их поместится в 4 раза больше (и выравнивать ничего не надо), что опять таки положительно скажется на производительности.

Цитата (Undead)
Ты ему ещё рычажками предложи программировать

А неплохая таки идея happy


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Пятница, 03 Мая 2013, 14:28
ArchidoДата: Пятница, 03 Мая 2013, 14:00 | Сообщение # 238 | Тема: Программы для создания программ
Сэнсэй
Сейчас нет на сайте
Да, интерпретатор - наиболее вероятный вариант как мне кажется, но скорее только частично.
Скажем, ноды в визуальном редакторе кода на самом деле используют нативный код, который написан и определен заранее. Скрипты используются чтобы связать эти ноды воедино (передавать входные\выходные параметры между ними и вызывать сам код), а все вычисления которые они выполняют - делает натив. Если есть внутренний скрипт язык (а он наверняка есть), то опять таки - все готовые ф-ции которые там есть - это натив, а вот уже лично написанный код исполняется чисто интерпретатором. При этом таки, никто не мешает повесить все эти скрипты на виртуальную машину вроде LLVM и получить в добавок JIT компиляцию, что прилично покроет расходы на обычную интерпретацию.

Преимущества очевидны - есть некая "платформа", которая портирована много куда и которая умеет исполнять внешние сценарии (скрипты), не привязанные к конкректной аппаратной или программной части. К платформе заранее прилинкован специфичный "гейм" код, API которого выведено наружу и которое используется скриптами, а остальное интерпретируется (или JIT компилируется). В итоге имеем относительно несложную реализацию и неплохую скорость исполнения всего этого дела.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)

Сообщение отредактировал Archido - Пятница, 03 Мая 2013, 14:02
ArchidoДата: Среда, 01 Мая 2013, 19:49 | Сообщение # 239 | Тема: Почему в С++ нет массивов?
Сэнсэй
Сейчас нет на сайте
Цитата (King_Of_Games)
Почему в С++ нет массивов? Что за бред? И почему циклы не возвращают значение функции о тупо зависают? Что разработчик языка хотел доказать?

Недавно задавался подобным вопросом и понял что С++ - это днище, сейчас начал учить очень классный язык и все не нарадуюсь. Массивов нет, но циклы умеют возвращать значение! И главное - он очень прост и интуитивно понятен, код читать одно удовольствие! На остальные языки теперь вообще смотреть не могу.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
ArchidoДата: Среда, 01 Мая 2013, 19:31 | Сообщение # 240 | Тема: А зачем вообще нужен АСМ?
Сэнсэй
Сейчас нет на сайте
Цитата (zub21)
Мда пишите что можно написать ОС без ассемблера! напишите первичный загрузчик на C++ или Java а потом и говорите бред

Зачем С++ или Java? Можно взять обычный Си, отучить / отвязать его от любого рантайма и получать на выходе чистый машинный код. Для всякой экзотики можно заюзать небольшие асм вставки. Все.

Асм весьма полезен для изучения выхлопа, сгенерированного компилятором, и на основе которого можно оптимизировать свой изначальный код. Есть еще реверс инжиниринг (где асм правит балом) и всякая вирусная братия, где асму можно найти применение. Даже микроконтроллеры сейчас часто на Сях программируются.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг