|
36 / 36 / 0
Регистрация: 24.05.2009
Сообщений: 178
|
|
Понимание программирования графики14.02.2013, 20:37. Показов 3840. Ответов 12
Здравствуйте. Хочу попробовать запрограммировать какую-нибудь графику, но в интернетах преобладают руководства по использованию разных OpenGL/DirectX методов явно рисующих объекты. Допустим, я разрабатываю шашки. Двумерные. Можно, конечно, нарисовать поле и шашки каким-нибудь GDI/OpenGL, но это только в случае простых изображений. Потом понадобятся специальные люди, которые рисуют все модели, окружение и прочее, а программисты только переносят все это в игру, т.е. разрабатывают алгоритмы визуализации, которые работают на основе массивов вершин, граней моделей и прочей информации, но сами программисты не рисуют, т.е. явно не вызывают методы вроде, скажем, отрисовки круга для изображения головы.
Собственно, вопрос 1 - я правильно понимаю? Если да, то я думаю имеет смысл сразу учиться работать с внешними источниками графических данных, а не рисовать кодом. Допустим, у меня есть файлы с изображением поля и файлы с изображениями шашек. Как мне корректно отображать шашки поверх поля? Ведь сам файл содержит квадрат, в центре которого нарисована круглая шашка, т.е. есть фон, который мне не нужен. Его обрезают? Делают прозрачным? Отображают этот квадрат в круглый фрейм на поле? Меняют цвет фона кодом? Я слышал, даже двумерную графику проще рисовать трехмерной, это так? А как тогда делается графика во флеш-играх? А с трехмерными моделями как работают? Допустим, у меня есть модель, скажем, из 3ds max. Как я могу использовать этот файл для отображения этой модели? Читал про побайтовый разбор файла, но, мне кажется, это какое-то извращение, формат файла ведь может поменяться. Неужели нет нормальных библиотек для этого? Это и есть часть функций игрового движка, да? В общем, главный вопрос - не могли бы вы посоветовать какую-нибудь литературу в которой есть ответы на все это (с упором на объяснение работы с внешними источниками). При этом желательно программирование на C# .NET. Ну, или поясните что-нибудь сами, если не сложно.
0
|
|
| 14.02.2013, 20:37 | |
|
Ответы с готовыми решениями:
12
Понимание программирования
О началах программирования графики |
|
|
||
| 15.02.2013, 00:06 | ||
|
начните с видео уроков Ивана Андреева и всё станет ясно.
1
|
||
|
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
|
|
| 15.02.2013, 17:46 | |
|
В XNA очень много упрощений - по сути это тот же DirectX, но только до невозможного упрощенный. Если выучить DirectX - то выучить XNA будет очень просто, но только не наоборот.
Помоему вы не с того начинаете. По вашему, художники рисуют текстуры, моделлеры - 3D модели, а программист тыкнул пару функций AddGoodModelka и всё, на этом его работа закончена?? Вообще графика тоже на чем то основана. Например 2D-графика - линии, кружочки, квадратики... это всё тоже сделано не просто, а на основе алгоритмов (например Брезенхема) - тока обычно они уже реализованы. И в 3D-графике тоже ничего простого нет: Сцены, вершины, мэши, текстурные координаты, материалы, источники света, работа с матрицами вида, мира и проекции. Начинайте с простого. Например, тот же вывод просто пустого окна, вывод одного треугольника. А то вы уж сразу про "про побайтовый разбор файла" начали говорить, даже примерно не представляя как вообще строиться 2D и 3D графика. Читайте книги, гугл вам в помощь. Не стоит начинать знакомство с графикой с "импортеров 3D моделей"
0
|
|
|
|
|||
| 15.02.2013, 22:43 | |||
|
0
|
|||
|
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
|
|
| 15.02.2013, 22:53 | |
|
В XNA - многие вещи, такие как загрузка моделей и других ресурсов, уже сделаны за программиста. Я согласен, что это довольно удобно - не нужно делать своих импортеров.
Но в целях образования лучше изучать процесс более детально, чтобы иметь представление, о том, как это делается на самом деле. Например, изучить математические основы графики - не слишком лишнее. Поправка: это всё я написал для обучения Программиста, который действительно хочет разобраться в 3D-графике, а не для варианта "тупо написал программку, чтобы тупо пошевелить пару моделей в пространстве". Для этого есть всякие конструкторы игОр для чайников.
0
|
|
|
Master of Orion
|
||
| 16.02.2013, 02:46 | ||
|
RABBITSV,
Но в целях образования лучше изучать процесс более детально, чтобы иметь представление, о том, как это делается на самом деле. Например, изучить основы работы АЛУ - не слишком лишнее. Поправка: это всё я написал для обучения Программиста, который действительно хочет разобраться в программировании, а не для варианта "тупо написал программку, чтобы тупо написать Hello world". Для этого есть всякие С++ и CLisp'ы.
1
|
||
|
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
|
|
| 16.02.2013, 10:34 | |
|
Спасибо за юмор
Сколько людей - столько и мнений.Но тема-то - "Понимание программирования графики", а я отвечал на Тему (а уж оформить её правильно - это задача ТС).
0
|
|
|
Master of Orion
|
||
| 16.02.2013, 10:46 | ||
|
RABBITSV,
![]() Просто бредово говорить, что если понял простое, то сложное не понять. Давайте будем не давать готовые формулы по геометрии, а просить школьников 6 класса посчитать двойной интеграл. А что, они же должны "иметь представление, о том, как это делается на самом деле". Все нужно делать последовательно, от простого - к сложному. Сразу начинать со сложного означает только отбить всякое желание этим заниматься. Хотя есть ограничения конечно, после того же бейсика на норм. язык перейти трудно
0
|
||
|
142 / 16 / 2
Регистрация: 21.01.2013
Сообщений: 54
|
|
| 16.02.2013, 11:05 | |
|
Ну так я и сказал:
"Начинайте с простого. Например, тот же вывод просто пустого окна, вывод одного треугольника. А то вы уж сразу про "про побайтовый разбор файла" начали говорить, даже примерно не представляя как вообще строиться 2D и 3D графика." В любом туториале (по DX, OpenGL) начинается с этого. Ну а чтобы просто передвинуть объект, крайне желательно знать, что такое матрицы. Он просто захотел сразу импортировать модели, вообще не вдаваясь в подробности как она строится из полигонов. Ну да, загрузить и покрутить получится, а сделать что то более серьезное - фиг. Тему нужно было назвать "Как сделать простые 2D/3D шашки", т.к. "Понимание программирования графики" звучит больше как углубленное изучение построения графики. Добавлено через 13 минут Ув. Psilon, вот именно то, что вы написала про Бейсик. DirectX и OpenGL - они не сложнее XNA, на них точно так же можно писать простые программы. Они просто более детальны - в XNA просто многие моменты скрыты от программиста - вот, то что я хотел сказать.
0
|
|
|
Master of Orion
|
|
| 16.02.2013, 14:03 | |
|
RABBITSV, в шарпе тоже многие детали скрыты, которые есть в С++, а в С++ есть скрытые детали, которые есть в С, а в С есть скрытые детали, которые есть в ASM... От простого к сложному - обычная практика. Вопрос в том, чтобы не привыкать к простоте, а это уже человеческий фактор.
0
|
|
| 16.02.2013, 14:21 | |
|
Не по теме: я уже пол дня пытаюсь заставить себя сделать сверточную нейронную сеть - вот уж действительно пример когда меня не интересует реализация, а хочется только результата :)
0
|
|
|
Master of Orion
|
|
| 16.02.2013, 14:33 | |
|
RABBITSV,
Не по теме: :D
0
|
|
| 16.02.2013, 14:33 | |
|
Помогаю со студенческими работами здесь
13
Программирования графики в с++ Метод Pixels Общие принципы программирования графики Основы программирования графики в MS Windows Ноутбук для программирования/игр/графики Что поменять, для программирования и 3D графики? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|