Пятница, 29 Марта 2024, 16:13

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » Общие обсуждения программистов » Помогите встать на путь истинный для достижения цели
Помогите встать на путь истинный для достижения цели
DeswingДата: Среда, 13 Февраля 2013, 14:38 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Я очень сильно запутался. Ещё три года тому назад я и представить не мог, что научусь программировать. Более или менее научился - прочитал множество книг, врубился в курс дела. Всё, вот он я, "программист". Не могу сказать что у меня супер-пупер ровные руки, нет, вовсе не так. Но тем не менее я научился языку C++. Потом я вспомнил свою конечную цель: создание игр. Да, разумеется, консольные игрушки делал: "Угадай число", "Крестики-нолики", "Змейка", "Текстовый бой". Ну а далее я захотел графики. И здесь начались мои проблемы.

Сначала, как и советовали мне многие, я использовал движки: HGE, ELFEngine и др. Да, конечно же, я получил результаты: графика была, игрушки были. Но мне как-то не хотелось движки использовать, я хотел программировать на ином уровне.

Потом я узнал что такое OpenGL и DirectX SDK... И здесь у меня началось полным-полно проблем. Я не нашел ни единой подходящей литературы, чтобы более или менее разобраться. Я перечитывал классиков: Фрэнк Луна и других. Нет, всё это не то. Я искал англоязычные уроки. Но нигде, абсолютно нигде не находил того, чего мне нужно. Да, я согласен с тем, что это кропотливый труд. Да и при том неблагодарный. Манера программирования DirectX меня очень пугает: полно заглавных букв, полно фич, о который я СОВСЕМ не знаю. В том и дело, что не знаю, ну а в книжечках только три словца бросят: "Создание устройства"...

Моя цель - я хочу писать игры, но при этом не используя движки. Да, я готов учится, читать, анализировать. Просто покажите верный путь - молю. И что такое SDL?
warzesДата: Четверг, 14 Февраля 2013, 05:35 | Сообщение # 2
участник
Сейчас нет на сайте
Во-первых, нет такой "священной книги" прочитав которую ты будешь крутым рендер-программистом. Вообще нет такого учебника прочитав который ты становишься специалистом в чем-либо.
Во-вторых, чистое программирование на GAPI (OGL/DX) - это матан, будь готов к откапыванию учебников по линейной алгебре, тригонометрии, и т.д. (на самом деле не все так страшно, но незнание будет усложнять жизнь)
В-третьих, все что может DX (и OGL) - это выводить пиксели на экран предварительно их обработав. Когда ты это поймешь - станет намного легче (тени, освещение, эффекты и прочее, делаешь ты а не DirectX/OpenGL)
В-четвертых, забудь про DirectX 9 - нафиг он тебе? Если хочешь делать игру, бери unity, если хочешь стать рендер-программистом изучай новое

Ладно, по урокам. У меня в подписи вон ссылка на вики по DirectX 11, изучай. Если чего не хватит (я один, много еще не написал), добудь книгу Jason Zink, Matt Pettineo, Jack Hoxley - Practical renderind with DirectX 11. Это очень хорошая книга, но будь готов к тому что там почти нет примеров, книга теоретическая (а другие на самом деле и читать не стоит). На самом деле это разжеванный материал из DirectX SDK help, так что возьми в привычку читать последний вечером перед сном:)
Тебе надо понять render pipeline, поняв этот термин (не только теорию, но и на практике как работает) ты быстро поймешь и другое.
Это чисто по GAPI. По OpenGL тебе пусть кто-нибудь другой советует, хотя я лично не советую его изучать первым (а специалист должен знать оба) - все запутано, никакой структуризации (в DX все четко разложено по полочкам - есть устройство, есть ресурс и есть конвеер, все остальное работает с тремя этими терминами), куча лишних терминов (все эти VBO, FBO, VAO - в DirectX вообще таких слов нет и ниче, тоже самое можно делать)
У Френка Луны кстати есть еще и книга по DirectX 11, но ее пока нет в варезе (вроде), тоже можно полистать.

Теперь теория. Матан бери из Essential Mathematics for Games and Interactive Applications - David H. Eberly
или из Lengyel E. - Mathematics for 3D Game Programming and Computer Graphics
Но вообще нужный матан есть и в той же книге Луны или в любой другой по разработке игр. Тем не менее прочитать первые книги стоит, ибо там весь который нужен

А по программированию графики почитай Akenine-Moller T. - Real-Time rendering (третья редакция)
Эту книгу походу вообще наизусть надо знать, многие материалы ссылаются на нее. там многое разжевано чисто по тому как работает трехмерная графика, шейдеры и прочее.

Затем добывай серии книг типа gems (есть по графике, по играм, и по движкам) и shaderX.

Ну а дальше вообще забудь про такое слово "книги/учебники" - потому что их больше нет, есть тысячи статей/заметок/презентаций/paper, изучай


Мой блог
Вики DirectX
ArchidoДата: Четверг, 14 Февраля 2013, 16:29 | Сообщение # 3
Сэнсэй
Сейчас нет на сайте
Deswing, ок, как я понял ты уже успел поработать с OpenGL? Почему бы и не продолжить? Почему решил перейти на Dx?
Про литературу товарищ в целом правильно излагает о том, что нет такой книги где все от и до разжевано во всех подробностях. Где-то используется литература, где-то (почти везде smile ) гугл, ну и на форуме можно всегда спросить. По крупицам собираем информацию и много практикуемся, ну и со временем приходит опыт и понимание.
А вот про матан товарищ приврал, математика конечного есть, но страшного слова матан там нет, только в очень особенных случаях... Но тригонометрию и линейную алгебру придется таки знать, да.

Вообще "верный путь" показать довольно таки сложно, ибо он у каждого свой smile . Вон выше агитируют сразу с 11-ым Dx'ом и шейдерами убиваться, ибо по-другому и не скажешь. Мой путь вообще начинался с Delphi + OpenGL happy , но сейчас есть возможность писать на С++ и использовать OpenGL / DirectX. Так что все зависит только от тебя самого cool , как и что выберешь - так и будет.

P.S. Но я бы отдал предпочтение начинать таки с OpenGL happy


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

Сообщение отредактировал Archido - Четверг, 14 Февраля 2013, 16:30
DeswingДата: Четверг, 14 Февраля 2013, 20:59 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Archido, изучал ток glut. OpenGL даже не знаю как и с чего начинать изучать

Добавлено (14.02.2013, 20:59)
---------------------------------------------
Archido, хорошо, допустим выбрал опенГЛ. Что учить, чтобы игру сделать?

SEvgДата: Четверг, 14 Февраля 2013, 21:21 | Сообщение # 5
Алхимик
Сейчас нет на сайте
Цитата (Deswing)
Моя цель - я хочу писать игры, но при этом не используя движки.

Нормальную игру без движка не сделать, так что или чужой или свой wink
Deswing, на самом деле выбор такой: или игра, или движок...
Создать свой движок, а потом на нём игру - долгий и тяжёлый путь, только для истинных самураев...
Можно взять, любой открытый движок, и пробовать его переделывать.

Но всё таки я бы посоветовал, взять готовый...
DeswingДата: Четверг, 14 Февраля 2013, 22:29 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Цитата (SEvg)
Нормальную игру без движка не сделать, так что или чужой или свой
Deswing, на самом деле выбор такой: или игра, или движок...
Создать свой движок, а потом на нём игру - долгий и тяжёлый путь, только для истинных самураев...
Можно взять, любой открытый движок, и пробовать его переделывать.

Но всё таки я бы посоветовал, взять готовый...

я уже исопользвал двиги. Выбираю путь самураев ;'D

Добавлено (14.02.2013, 22:29)
---------------------------------------------

Цитата (Deswing)
я уже исопользвал двиги. Выбираю путь самураев ;'D

А если серьёзно - то я хочу для начала хотя бы научиться юзать openGL\DirectX. Директ пока что кажется недосягаемым и сложным, по поводу ГЛ - не знаю, т.к. пробовал лишь ГЛУТ (страха к которому практически не было...)) ).
Кто разбирается? С чего начать? Уроки NeHe испугали меня. Да и подключение <Windows.h> напрягло. Есть "шаряще" люди на ДжиСи? Кто-то научит чайника ОпенГЛу? Буду послушным подаваном...)))
AlexRabbitДата: Четверг, 14 Февраля 2013, 22:47 | Сообщение # 7
старожил
Сейчас нет на сайте
Deswing, я бы Вам порекомендовал кроме самообразования устроиться в любую игростроительную контору, где Вам поставят конкретные задачи + будут люди с опытом, чтобы помочь их решать. Это лучший вариант.

Теперь по рекомендациям: если говорить о виртуальных классах то масса всего полезного есть на 3dbuzz.com (напинание движков, простых и не очень)
Теперь по литературе:
1) http://www.proklondike.com/books/codingproch/lamot_game_programming.html 9буквально недавно рекомендовал в соседней теме)
2) Programming 2D Games - Charles Kelly
3) Game Engine Architecture (Jason Gregory)
4) Game Engine Gems 2 by Eric Lengyel
5) Game Engine Toolset Development by Graham Wihlidal


Нам требуются партнеры для продвижения и поддержки нашего ПО
warzesДата: Пятница, 15 Февраля 2013, 05:40 | Сообщение # 8
участник
Сейчас нет на сайте
Цитата (Deswing)
Директ пока что кажется недосягаемым и сложным, по поводу ГЛ - не знаю, т.к. пробовал лишь ГЛУТ (страха к которому практически не было...)) ).

Это только кажется, на самом деле DX 10-11 проще чем OGL 3-4 (я знаю оба, начинал с ogl - много мозга вынесло (особенно взаимодействие буфера глубины и блендинга), а как начал изучать DX, так сразу все стало понятно)
На самом деле не стоит смотреть на DX 9 и думать что в в следующих версиях все сложнее. наоборот - все проще, так как выкинули кучу лишнего, теперь все делается шейдером, а это не сложно. точно также и ogl 3 проще ogl 2, потому что тоже выкинули весь мусор

Цитата (Deswing)
? Уроки NeHe испугали меня

Забудь про нехе. так сейчас не делают ( glbegin/glend и все эти glpushmatrix/glpopmatrix- давно выкинуты из стандарта и по хорошему ими не стоит пользоваться а если правильно все сделать то ими невозможно пользоваться). Зачем изучать старье? Тем более ogl 4 не требует новых винд, только видеокарту с поддержкой DX11 и драйвера
по ogl идешь сюда http://www.opengl.org/
Изучаешь, особенно
(ogl 4)
http://www.opengl.org/sdk/docs/man/
или ogl 3
http://www.opengl.org/sdk/docs/man3/

отсюда качаешь кореспеку под нужный ogl
http://www.opengl.org/registry/

там же где-то есть уроки на уровне вывода треугольника на экран.

и еще раз, изучай самое новое, потому что со времен ogl 2 все кардинально поменялось, и если ты сейчас начнешь изучать ogl 2 (ну или dx 9, они равны) ты тупо потратишь в пустую время и затем опять же чуть ли не с нуля будешь изучать новые gapi.

Цитата (Deswing)
Да и подключение <Windows.h> напрягло.

вот чем сейчас не стоит забивать голову, так это мультиплатформой. мультиплатформа - очень сложная тема.


Мой блог
Вики DirectX
ArchidoДата: Пятница, 15 Февраля 2013, 07:30 | Сообщение # 9
Сэнсэй
Сейчас нет на сайте
Цитата (Deswing)
хорошо, допустим выбрал опенГЛ. Что учить, чтобы игру сделать?

Игру так просто сходу и не сделаешь. Сначала нужно непосредственно разобраться в самом OpenGL и уметь с помощью него легко рисовать хотя бы спрайты в 2д, понимая при этом как их перемещать / поворачивать и т.п. Там есть еще много нюансов, но начинать нужно с простого. Потом уже на основе полученных знаний делается некое далекое подобие движка, после чего уже можно делать игру.

Начинать изучать OpenGL часто советуют с уроков Nehe (чем они кстати напугали?) - считай это практикой, самые первые не особо сложные, а далее большая часть их особо и не нужна. В качестве подспорья в теории можно использовать ранее довольно популярную OpenGL RedBook, там разжевано довольно таки много базовых вещей. Все что касается там "встроенного" освещения и материалов (тумана и т.п.) - стоит просто просмотреть (для общего развития), а использовать - не стоит.

Цитата (warzes)
если ты сейчас начнешь изучать ogl 2 (ну или dx 9, они равны) ты тупо потратишь в пустую время и затем опять же чуть ли не с нуля будешь изучать новые gapi.

Ты не понимаешь. Это тоже самое, что предлагать новичку сразу с нуля учить С++ (С# / Java, по вкусу), говоря что-то вроде: "это же современные и наиболее используемые языки - их учить надо, а не всякое старье вроде Basic и Pascal, они ж мертвые - вы только зря время потратите".

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

Аналогичная ситуация и с компьютерной графикой. Точно также тут есть базовые понятия и общие принципы, которые для любого GAPI будут всегда справедливы. И это основы, с которых и нужно начинать, не загружая себе голову ненужными пока "современными" вещами. А GAPI - точно такой же инструмент. При должных познаниях в комп. графике и наличии скила в программировании - изучение любого GAPI никакой проблемы не представляет и времени особо много не требует.

Кое-чего из основ (вдруг для кого-то не очевидно): Пространства, преобразования, вершины, треугольники, нормали, Depth и Stencil буферы, Blending и куча его вариантов, рендер полупрозрачной геометрии, Culling (смысл обхода вершин по и против часовой стрелки), текстурирование (и мульти), текс. фильтры и т.д. Можно пол дня перечислять и это сильно в кратце, нюансов в каждом из перечисленного - более чем дофига.

Вообще практически все что делается на том же Dx, делается точно также и на OpenGL, только с помощью другого API (ваш кэп) smile Сам способ создания или отрисовки, например геометрии / эффекта, не меняется. И GAPI - это всего лишь набор ф-ций и классов, которые изучаются гораздо быстрее изучения нового ЯПа. Тот же glBegin/glEnd вскоре заменяется на VBO за пару часов с перекурами. Проблемы не вижу в упор.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
warzesДата: Пятница, 15 Февраля 2013, 09:09 | Сообщение # 10
участник
Сейчас нет на сайте
Цитата (Archido)
Ты не понимаешь. Это тоже самое, что предлагать новичку сразу с нуля учить С++ (С# / Java, по вкусу), говоря что-то вроде: "это же современные и наиболее используемые языки - их учить надо, а не всякое старье вроде Basic и Pascal, они ж мертвые - вы только зря время потратите".

Я выучил и через два месяца (скорее меньше, да еще и ленивого) изучения С++, мною была написана первая змейка на DX9.
http://www.gamedev.ru/flame/forum/?id=170608
А еще писал рогалик
http://rlgclub.ru/forum/viewtopic.php?f=11&t=183
Обрати внимание - это на чистом DX9 и С++, никаких движков и прочего мусора. И это при том что я не такой уж хороший программист

Цитата (Archido)
Точно также тут есть базовые понятия и общие принципы, которые для любого GAPI будут всегда справедливы

Вот именно поэтому и советую начинать с новой вехи GAPI (ogl 3/dx10), потому что именно здесь нужно изучать базовые понятия - например зачем нужны матрицы и можно ли без них, тогда как в ogl 2 матрицы встроены в gapi и понимания это не добавляет. Плюс сотни команд фиксированного конвеера (те самые glbegin/glend), на них тоже тратится время. Кроме того, вся эта теоретическая база разжёвана в Real-Time rendering

Цитата (Archido)
А GAPI - точно такой же инструмент. При должных познаниях в комп. графике и наличии скила в программировании - изучение любого GAPI никакой проблемы не представляет и времени особо много не требует.

А об этом я тоже написал
Цитата
все что может DX (и OGL) - это выводить пиксели на экран предварительно их обработав.

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

Цитата (Archido)
Проблемы не вижу в упор.

Проблема ровно в одном, gapi начинают изучать не спецы программирования, а новички, для них
Цитата
Тот же glBegin/glEnd вскоре заменяется на VBO за пару часов с перекурами
происходит никак не за пару часов, потому что тут нужно не только знать куда какую букву написать, но и понимать зачем там эта буква, и какие еще буквы туда можно всунуть. А в OGL 3, кроме понимания VBO нужно еще понимать VAO иначе вон
http://www.gamedev.ru/code/forum/?id=172754
Даже треугольник с готового примера не смог вывести, а там сверху еще и атрибуты которые передаются другим синтаксисом. И после всех этих glBegin/glEnd внезапно понимаешь, что ровным счетом ты нифига еще не знаешь, и хотя у тебя появилось понимание об трехмерной графике (которое я вообще не понимаю как может быть непонятным), ты все равно не понимаешь как же вывести модель на экран, как вывести сто моделей на экран, как их анимировать, как организовать сцену и загрузить модели с жесткого диска чтобы оно не тупило, как сделать чтобы все сверкало и отражало, как показать стеклянную бутылку и почему это так зверски сложно со всеми этими earlyZ сортировками, ведь бутылка такая простая, а еще хочется теней, крутого освещения. Да, все это не имеет никакого отношения к GAPI, и чем раньше об этом поймет новичок, тем быстрее он будет обучаться. И поэтому вместо того чтобы изучать толстые мануалы с сотнями ненужных функций из OGL, можно было изучить 3,5 команды из ogl 3/dx10, понять что все это делается в шейдерах, и наконец-то взять толковую книгу по теории трехмерной графики, где все это расписано подробно без привязки к GAPI

Добавлено (15.02.2013, 09:09)
---------------------------------------------
И при этом не надо думать что все это взято с неба. Я через все это прошел. Сначала тоже, начал изучать OGL, потому что везде писали что он типа проще DX 9 (к тому времени я подзабыл уже то немногое что об нем узнал) и как раз для начинающих нубов. Взял OGL 1.5 (ну просто видеокарта ничего больше не поддерживала). Начал читать всяких нехе, красную книгу, суперкнигу. Все шло нормально пока я ковырялся в треугольниках на экранах, а как начал выходить за пределы этого, оказалось что я нифига не знаю и не понимаю (особенно про упомянутый ранее буфер глубины и его взаимодействие с блендингом или теже матрицы), проблема за проблемой, из-за чего я стал боятся трехмерных игр и перешел в 2D (потому что здесь из ogl нужно было только квад на экран вывести). К тому времени я возненавидел OpenGL (и до сих пор не совсем отошел). А когда я создавал темы, все смеялись, что нуб такие тупые вопросы задает. Через год, когда в 2D вконец достало ковыряться, я решил снова попробовать трехмерную графику. Взял DX 11 (а документации тогда, да и сейчас, по нему почти не было)... и внезапно все стало ложится на свои места, то что я не понимал раньше оказалось таким элементарным и простым. Сначала я подумал что это просто DX 11 божественно прост. Но затем я рискнул поковырять OGL 3.3 и тут я понял, что все то что я делал на DX 11 делается хоть и немного сложнее, но почти также на OGL 3.3. И знаешь, я до сих пор не смогу вывести ничего сложнее треугольника на ogl 2, но зато я сдел за пару часов такое на dx 11


Здесь ландшафт, загруженный из файла меш с текстурой, анимированное небо (облака реально движутся по нему) (это как раз из моих подделок того времени когда только начинал)
И также хочу сказать что OGL 3 оказался чуть сложнее, тем что там все функции сброшены в одну кучу и не всегда понятно когда какую и после какой звать


Мой блог
Вики DirectX


Сообщение отредактировал warzes - Пятница, 15 Февраля 2013, 08:52
ArchidoДата: Пятница, 15 Февраля 2013, 13:00 | Сообщение # 11
Сэнсэй
Сейчас нет на сайте
Цитата (warzes)
Обрати внимание - это на чистом DX9 и С++, никаких движков и прочего мусора. И это при том что я не такой уж хороший программист

Это все хорошо, но от чего то не видно более ли менее сложных проектов или демок. На С++, конечно, можно начинать и многие так и делают, но... Часто это путь наибольшего сопротивления, ибо часто вместо изучения непосредственно программирования новички борятся с подводными камнями ЯП и пытаются вкурить что такое указатель, потом портят память, ну и все в таком духе, ООП тоже сразу не нужен и к слову, у OpenGL в этом преимущество - объектов нет, классов нет... просто ф-ции дергать и усе. Красота. Но это все лирика, ибо каждому свое.

Цитата (warzes)
Вот именно поэтому и советую начинать с новой вехи GAPI (ogl 3/dx10), потому что именно здесь нужно изучать базовые понятия - например зачем нужны матрицы и можно ли без них, тогда как в ogl 2 матрицы встроены в gapi и понимания это не добавляет

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

Цитата (warzes)
Проблема ровно в одном, gapi начинают изучать не спецы программирования, а новички, для них

VBO предлагаешь изучать ты с самого начала, ибо glBegin/glEnd "уже не модно". Я лишь говорю, что когда человек все это пишущий реально понимает (а не кто-то там сказал, что "не модно"), что ему не хватает производительности - он переделывает все на VBO, попутно в нем разбираясь, ибо это опять таки имеет практический смысл. И он уже не совсем новичок к этому моменту.

Цитата (warzes)
Даже треугольник с готового примера не смог вывести

Во-во, а в DX11 без шейдера даже квадрата с текстурой не нарисовать. Зачем все эти сложности? glbegin / glend творит чудеса happy
3D можно делать и без шейдеров и без всяких VBO/VAO или FBO, разбираясь в базовых основах. Можно разобраться с Z-Buffer'ом и узнать (внезапно), например, что такое z-fighting и его побороть. Потестить блендинг и разобраться как ему правильно работать вместе с Z, потом грузить модели, делать простые ландшафты и так далее. Шейдеры и VBO не нужны вообще. Да и перед всем этим нужно 2д успеть хорошенько поделать.

Цитата (warzes)
Взял DX 11 (а документации тогда, да и сейчас, по нему почти не было)... и внезапно все стало ложится на свои места, то что я не понимал раньше оказалось таким элементарным и простым

Дада, взял DX11 и сразу понял как правильно нужно прозрачную геометрию рисовать (подружить Blend и Depth)... К слову во всех GAPI "дружба" их ни чем не отличается. Если знаешь как - сделаешь везде.

Цитата (warzes)
И после всех этих glBegin/glEnd внезапно понимаешь, что ровным счетом ты нифига еще не знаешь, и хотя у тебя появилось понимание об трехмерной графике (которое я вообще не понимаю как может быть непонятным), ты все равно не понимаешь как же вывести модель на экран, как вывести сто моделей на экран, как их анимировать, как организовать сцену и загрузить модели с жесткого диска чтобы оно не тупило, как сделать чтобы все сверкало и отражало, как показать стеклянную бутылку и почему это так зверски сложно со всеми этими earlyZ сортировками, ведь бутылка такая простая, а еще хочется теней, крутого освещения. Да, все это не имеет никакого отношения к GAPI, и чем раньше об этом поймет новичок, тем быстрее он будет обучаться

Это уже совершенно другой уровень - ты хочешь всего и сразу, а так не бывает. Все изучается всегда постепенно, шаг за шагом. И если новичок начнет сразу лезь в дебри - у него будет только больше вопросов и непонимания, ну и соответственно больше копипаста и тем на форуме: "сделал Normal mapping, но ниче не работает. Посмотрите шейдер и помогите, ибо он не мой"

Цитата (warzes)
Но затем я рискнул поковырять OGL 3.3 и тут я понял, что все то что я делал на DX 11 делается хоть и немного сложнее, но почти также на OGL 3.3. И знаешь, я до сих пор не смогу вывести ничего сложнее треугольника на ogl 2, но зато я сдел за пару часов такое на dx 11

Есть много мнений о том что 2 и 3-й OpenGL принципиально ничем не отличаются. Ну API чуток другое да, кое-что по другому делать, но а в целом все тоже самое. Так, что даже и не знаю чего ты там родить во втором не можешь.

Я могу тоже скрин нарисовать, древняя работа - Delphi + OpenGL 1.5. Шейдеров нет, но есть VBO. Ландшафт с Chunk Lod'ами и мультислоями с текстурами, модели, катающийся поезд, лесок, небо, туман и т.п. Вот оно:



Цитата (warzes)
И при этом не надо думать что все это взято с неба. Я через все это прошел.

Я тоже через все это прошел, не ты один такой happy . Только я шел совсем другим путем и никаких проблем с OpenGL не испытывал.

Добавлено (15.02.2013, 13:00)
---------------------------------------------
Да, еще кое-чего добавлю, отойдя от темы "что проще для новичка". Мы сейчас имеем довольно бурно развивающийся и перспективный рынок мобильных девайсов, где балом правит в данный момент именно OpenGL 2.0 (ЕS, кастрированный немнога), что обуславливает его преимущество перед DX. Написать свой движок под мобильники и тем более устроиться на работу в подобную контору куда более реально, чем в "большой" геймдев. У нас таких "больших" компаний и нет то в принципе biggrin


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

Сообщение отредактировал Archido - Пятница, 15 Февраля 2013, 13:00
DeswingДата: Пятница, 15 Февраля 2013, 15:56 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Цитата (Archido)
Ты не понимаешь. Это тоже самое, что предлагать новичку сразу с нуля учить С++ (С# / Java, по вкусу), говоря что-то вроде: "это же современные и наиболее используемые языки - их учить надо, а не всякое старье вроде Basic и Pascal, они ж мертвые - вы только зря время потратите".

Я его итак первым учил (С++ (GML не в счёт)). И нравится, разобрался smile
Так и не понял почему его наотрез запрещают новичкам учить happy
Сначала книжонку одну страничек 50 прочел - не, не пошло. Потом друг подарил книжку "Язык программирования С++, стандарт ANSI/ISO" и меня понесло. Может конечно в супер-пупер дебри не лез, но с помощью этой книги я изучил типы переменных, манипуляции с данными, циклы, одномерные и многомерные массивы, функции, классы, указатели, указатели на указатели (ха-ха, до сих пор от этого названия штырит). Честно сказать если бы не друг со своей книжкой - так бы и боялся учить плюсы. А всё почему? Начитался ваши "не надо начинать с С++". Боялся душой, хотя абсолютно СПОКОЙНО мог понять и разобраться.

Ребят, я конечно понимаю тут у вас своя атмосфера (дискуссии), но... Всё-таки, что учить? И кто-нибудь может в случае чего мне помогать? Чую, что с графической частью будет куда сложнее, чем с самим С++.

Добавлено (15.02.2013, 15:56)
---------------------------------------------
Пока что мои знания в этой области ограничиваются тем, что я знаю что такое: полигон, ребро, меш, грань, двумерная и трехмерная ось координат (так и не понял почему ось Z называют глубиной). Так же, как я понял, опенГЛ и ДиректИкс напрямую общаются с видеокартой и указывают где какие вершины, грани и т.п.


Сообщение отредактировал Deswing - Пятница, 15 Февраля 2013, 15:57
warzesДата: Пятница, 15 Февраля 2013, 16:13 | Сообщение # 13
участник
Сейчас нет на сайте
Цитата (Deswing)
Всё-таки, что учить?

А это ты сам решай. Только через свой опыт поймешь что лучше а что хуже


Мой блог
Вики DirectX
ArchidoДата: Суббота, 16 Февраля 2013, 04:18 | Сообщение # 14
Сэнсэй
Сейчас нет на сайте
Цитата (Deswing)
Так и не понял почему его наотрез запрещают новичкам учить

Ну, не запрещают таки smile , а обычно лишь рекомендуют. Но и в большей степени это касается тех, кто создает темы вроде "какой язык учить". Кто в состоянии сам ответить на этот вопрос - сам делает свой выбор и у многих получается нормально разобраться с плюсами, но большая часть таки обычно фейлит. Я это явление воочию наблюдал, когда поступил на первый курс в ВУЗ.

Так что если быстро разобрался и умеешь на плюсах без труда выполнять алгоритмические задачи - можешь считать, что ты крут cool

Цитата (Deswing)
Ребят, я конечно понимаю тут у вас своя атмосфера (дискуссии), но... Всё-таки, что учить?

Странно видеть этот вопрос.
Наша "атмосфера" тут как раз и показывает, что у нас совершенно разные взгляды и опыт, связанные с одними и теми же вещами. Каждый прошел своим путем и получил собственный опыт. И тебе придется сделать тоже самое. Я еще в первом своем посте писал, что явно указать идеальный "путь" не выйдет, ибо нет такого.

Смотри код \ уроки \ статьи \ читай что пишут на форумах и делай свой выбор. Не понравится или не получится разобраться в одном, попробуешь другое и вероятно все получится.


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
falcowareДата: Суббота, 16 Февраля 2013, 05:39 | Сообщение # 15
старожил
Сейчас нет на сайте
Deswing, я создал игру на голом ОпенЖЛ:

http://falcoware.com/FalcoChess.php VС++ + OpenGL.

Я думаю ты на правильном пути. Долби в одну точку, изучай тригонометрию, векторную алгебру. Матрицы и прочее. Удачи!
ZweifxДата: Суббота, 16 Февраля 2013, 06:49 | Сообщение # 16
был не раз
Сейчас нет на сайте
Цитата (warzes)
OGL 3

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

Задай себе вопрос зачем тебе эти новшества? Если можно взять старый, проверенный, удобный. В общем гнаться пока некуда, начинать нужно с самых истоков.

Deswing,
Сам лично советую взять тебе OpenGL. Меньше возни, быстрее обучение, сравнивая с Directx. Есть конечно в нем свои минусы, но это быстро решается.
В общем если надумаешь изучать OpenGL, можешь связаться со мной по лс, помогу в изучении.


Если никто не знает, это то же самое, как если бы этого не было вовсе.

Сообщение отредактировал Zweifx - Суббота, 16 Февраля 2013, 06:49
warzesДата: Понедельник, 18 Февраля 2013, 07:38 | Сообщение # 17
участник
Сейчас нет на сайте
Цитата (Zweifx)
Что делать тем у кого он не поддерживается?

Взять готовый движок, ибо вы запаритесь на оптимизациях, о которых в учебниках по OGL не пишут (а о том как правильно собирать батч, литературы вообще нет)

Цитата (Zweifx)
Там наверху совсем не думают об этом, и выходит так что ты должен быть мастер на все руки.

Не, ну если вам нравится выводить на экран треугольники, можете взять и OGL 1.0/ DX 8.0.

Цитата (Zweifx)
Тоже самое выходит и с Directx, берем 11 сразу, и что получаем?

У DX есть крутая фича - feature level. Ставишь на 9.1 (если видюха поддерживает только DX 9) или на 10 (если видюха поддерживает только DX10) и спокойно юзаешь DX 11. Конечно тесселяция работать не будет, также как и шейдеры выше 3 версии (4 для DX10), но оно тебе в обучении (да и во многих реальных проектах) и не нужно, а там где-нибудь через годик-два, может наконец купишь новую видеокарту. Все будет работать аппаратно (никакого софтвара) (OGL даже рядом не стоял - у него часто проблемы даже с видюхами которые его поддерживают).
Единственный минус - чтобы винда была вистой или семеркой. Так что это отговорки тех кто реально не шарит и не знает, что чтобы работать с DX 11, новая видеокарта не нужна. Кстати ничего магического в этом нет - сейчас графика делается в шейдерах (DX 11 только за конвеер и передачу данных отвечает), 3 версия шейдеров вполне достаточна для всех современных фич, а она как раз была на DX 9 (4 версия - DX 10, пятая версия - DX 11). именно отсюда кстати растет тот момент что все что можно сделать сейчас на DX 11 можно сделать и на DX 9 - потому что новые фичи просто еще не изучили

Цитата (Zweifx)
Задай себе вопрос зачем тебе эти новшества?

DX 11 (и аналогично OGL 3) намного проще DX 9 (OGL 2) в изучении


Мой блог
Вики DirectX
ArchidoДата: Понедельник, 18 Февраля 2013, 09:33 | Сообщение # 18
Сэнсэй
Сейчас нет на сайте
Цитата (warzes)
DX 11 (и аналогично OGL 3) намного проще DX 9 (OGL 2) в изучении

Да что ты говоришь. Ну-ка просвяти, что там изменилось в 3-ей версии ОГЛа, что стало аж НАМНОГО проще.

Цитата (warzes)
Не, ну если вам нравится выводить на экран треугольники, можете взять и OGL 1.0/ DX 8.0.

А это то тут причем? Если так смотреть, то ты со своими поделками даже трети уровня DX9 / OpenGL 2.0 не реализовал, все укладывается в их возможности, всякие 11-тые нафиг там не нужны. То что там для тебя что-то проще - это только лично твое субъективное мнение, не надо выносить сюда это как данное.

И повторюсь: на всем современном "мобильном" железе сейчас во всю используется именно 2.0 версия OpenGL. На рынок этот зайти проще, чем делать убийцу CryEngine (для примера смотреть Unigine - сколько лет уже пилят, а вменяемый профит только недавно начал появляться), поэтому в этом случае про DX вообще сразу нужно забыть, а в изучении 3-го OpenGL'a пока нет смысла.

warzes, хотя можешь считать, что я тебе ничего и не писал - все равно твердолобо будешь спорить и спорить, настаивая на своем. Хоть кто-нить другой прочитает - задумается smile


C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
falcowareДата: Понедельник, 18 Февраля 2013, 09:35 | Сообщение # 19
старожил
Сейчас нет на сайте
Archido, Unigine бегают по всему миру как с писанной торбой, ища лохов. Одногородники кстати.
ArchidoДата: Понедельник, 18 Февраля 2013, 09:55 | Сообщение # 20
Сэнсэй
Сейчас нет на сайте
Цитата (falcoware)
Unigine бегают по всему миру как с писанной торбой, ища лохов. Одногородники кстати.

Прикольно, не работали с ними? happy
Все там так плохо? Много говорили, что на их движке нет нормальных игровых проектов (раньше читал где-то на западных форумах как пару раз отказывались от Unigine'a в пользу UDK / UE) и это их основная проблема, почему нет - не совсем понятно. Но в любой случае движок сейчас выдает весьма недурную картинку (Valley например, из последнего) и думается в скором времени пробьются таки. Но блин - 10 лет уже пилят smile


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

Сообщение отредактировал Archido - Понедельник, 18 Февраля 2013, 09:55
Форум игроделов » Программирование » Общие обсуждения программистов » Помогите встать на путь истинный для достижения цели
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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