Результаты поиска
| |
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 для него темный лес, о комп. графике понятий похоже практически не имеет... а ему впаривают про кроссплатформенность И OpenGL ему советуют только в том случае, если он через пару недель уже будет писать под "Windows, Linux, OS X, Android, iOS, BlackBerry", а иначе "DirectX будет лучшим решением" Забавно, что аж не описать.
Можно не один год только GAPI и комп. графику изучать, да и кп - это не только графика, там еще очень много разного рода специфичных вещей. Тот кто собирается писать под множество ОС - не задает вопросы вида "OpenGL vs DirectX", и по-моему это очевидно.
GreyGLoomy Я в свое время начинал с OpenGL (есть мнения, что освоить его проще), glut / glfw не использовал, обвязки над WinApi писал сам (просто было интересно). Потом из интереса пересел за DX, после опыта работы с OpenGL осилил его очень быстро (в целом там только API другое, остальное все аналогично), в итоге после такой процедуры складывается личное впечатление о том, что лучше / удобнее. Попробуй сделать так же
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Четверг, 30 Мая 2013, 08:29 | Сообщение # 224 | Тема: Вопрос-Ответ (C++) |
Сэнсэй
Сейчас нет на сайте
| Нохчи Текстурный менеджер будет расстроен, что его оставили без работы Там конечно есть небольшой оверхед, но для большинства спрайтов подходит в самый раз. Для динамики (частое создание \ удаление спрайтов) уже имеет смысл вынести текстуру отдельно и закэшировать... Имхо.
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+) с баша
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) Значит это ты УДК написал?! Именно. Как догадался? Да, и пусть терь все знают что UDK на Delphi написан
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
Archido | Дата: Суббота, 11 Мая 2013, 17:35 | Сообщение # 235 | Тема: Почему в С++ нет массивов? |
Сэнсэй
Сейчас нет на сайте
| Vinchensoo, Паскаль вполне годный, плюсую и за ностальгию тоже
Сам в классе 9-том за него засел (если точнее - за делфу) и под конец 10-того мог себе позволить делать нечто такое (простенький движок, Delphi + OpenGL):
Сложно сказать, как оно бы было, если я б сразу с плюсов стартанул. Но в то время паскаль мне очень нравился , да и переход на плюсы в дальнейшем произошел крайне быстро благодаря делфийскому опыту. Паскаль - это секта
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) Ты ему ещё рычажками предложи программировать А неплохая таки идея
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++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
|