LINUX.ORG.RU

Компьютерная графика

 , , ,


2

1

Появился в этом семестре такой вот предмет. Лекции рассчитаны на M$вижуалстудию, C++, но выполнять разрешают на чем хотим.

Задания типа «пусть рисуются квадраты из левого верхнего в правый нижний, размер должен меняться при смене размера окна.», «Нарисуйте животное»

На лекциях были слова «преобразование», преобразования афинные, матрицами.

Посоветуйте инструмент? Думается Qt, но что брать там? Просто Label? Или GraphicScene?

Ответ на: комментарий от Goury

Не-не, кресты должны быть. В тегах указано, извиняюсь, что не явно.

BruteForce ★★★ ()

Use QPainter, Luke!

На самом деле там и Афинные преобразования уже реализованы, но это чит и так не интересно.

CrossFire ★★★★★ ()
Последнее исправление: CrossFire (всего исправлений: 1)

Это где такие задания на КГ? Мы в свое время на КГ рисовали в 3dmax'е, что меня совершенно пробесило.

l0stparadise ★★★★★ ()

В Политехе нам тоже давали графику. Юзал банально GLUT + писал в QtCreator.

kachsheev ★★ ()
Ответ на: комментарий от l0stparadise

В прошлом семестре была «Инженерная графика», там рисовали в Компас3Д.

BruteForce ★★★ ()
Ответ на: комментарий от BruteForce

Инженерная графика != kомпьютерная графика

rgB ()

OpenGL

Нас на КГ заставляли на до-диез с помощью OpenGL треугольники рисовать.

ichi404 ()

будь проще: сверху С++, на выходе PostScript или модно-современно SVG.

можно обойтись без системо-зависимых API или тяжёлых фреймворков. Да и вообще без GUI :-)

MKuznetsov ★★★★★ ()

Один из лучших вариантов. SDL2 + OpenGL + GLFW(для расширений) + glm (для математических преобразований). У меня даже есть пример как это всё использовать: https://bitbucket.org/RevenantX/openblood/src На основе некоторых уроков. Если откопаю скину.

RevenantX ★★★★ ()
Ответ на: комментарий от CrossFire

Ну тогда можно взять QImage и работать исключительно через setPixel()

Gorthauer ★★★★★ ()
Ответ на: комментарий от Gorthauer

Ну тогда можно взять QImage и работать исключительно через setPixel()

Зачем же так сразу? Наверняка аффинные преобразования — это первые лабы, в которых попросят показать код. Ну и с другой стороны изучается все это не иначе как для общего развития. Кстати у нас были лабы с цветами и фильтрами, там таки была работа через setPixel().

CrossFire ★★★★★ ()

Дурашка-малявка, послушай старпёров- делай в МС-ВижуалС.
И вот почему:
Тебе дали её бесплатно, по программе чёта-там Дрим Спарк для студентов.

По мере освоения программы универа, ты осваиваешь и свой рабочий инструмент.

Deleted ()
Ответ на: комментарий от l0stparadise

Эм... В курсе «Мат. основ машинной графики» или аналогичном. Обычно лабы пофиг на чем, лишь бы ты «руками» умел поставить на экране точку, потом линию (прямо тут тебе зачем-то расскажут про векторы/сложение/перемножение, запомни этот твит, пофиг что ничего не поймешь), выпукло-впуклые многоугольники, заливку, - «палка, палка, огуречек...» - далее идет внедреж сдвигов/поворотов в 2D и... матрицы, ага, вспоминаем ненужные векторы, потом «добавляют ножекизмерений» - начинаются всякие аффинные преобразования, матрицы прирастают и перемножаются чуть хитрее, добавляются Z-сортинги треугольников, пирамидки-кубики-икосаэдрики, цилиндры-сферы, мапание текстурок с интерполяцией, источники света точечные, диффузные и Фонги с КРОВЬ-КИШКИ-ВЗОРВАЛСЯ=МОСКГуро. Читеры, конечно, хотят шейдеров и загружания моделек из 3D-пакетов под соусом «эта ваша теория нинужна, а без шейдеров уже понятно что это все будет тормозить и глючить», но препод редко сам их понимает - потому не ведется :)

slackwarrior ★★★★★ ()
Ответ на: комментарий от slackwarrior

Я может не так понял автора, но насколько понял я, автора заставляют на с++ кодить какую-то рисовалку. И мне бы в студенческие годы такая задачка понравилась. А нас на предмете с аналогичным названием заставляли по гайдам рисовать в 3дмаксе, никакого программирования (хотя программисты по специальности). И у меня вот сейчас легкий диссонанс от такой разной подачи предмета.

l0stparadise ★★★★★ ()
Ответ на: комментарий от l0stparadise

Бггг. Нас на поцкале заставляли - потом в дельфях... Особо хитрожеппые мсьи портировали кот с сей на дельфы :) А диссонанс... Обычное дело, когда обр. стандарт преподы по-своему понимают. Нам приходящий фанат «Компаса» с Севмаша говорил «зобудьте, вы не программисты, вы чертежнеги» (его потом «ушли» через декана) - хотя стандарт он, как я понял, не читал вообще: разработка кадов конечно в автокаде происходит или в компасе - модуль обсчета подшипника на автолиспе слабал и вуаля :) Фонаты «больше часов 3Дмакса по гайдам» тоже были, сл. б-гу в меньшинстве :)

slackwarrior ★★★★★ ()
Ответ на: комментарий от Deleted

Тебе дали её бесплатно, по программе чёта-там Дрим Спарк для студентов.

Лол, нет.

По мере освоения программы универа, ты осваиваешь и свой рабочий инструмент.

BruteForce ★★★ ()

В Qt уже есть афинные преобразования, но по заданию ты должен сделать их сам. Будешь первым парнем на деревне если на Qt сделаешь но со своими матрицами реализуешь...

I-Love-Microsoft ★★★★★ ()

Мда. Когда втрой вышак получал, на курсе дисциплины по комп. графике было одно условие - чтоб только компилилось на вижуалштудио что-то там. Юзать можно было плюсы или шарп. Задание было у меня - нарисовать график любой функции так, чтоб он по-любому влезал в окно и менял пропорции при масштабировании окна (не обрезался границами области построения). Взял шарп, вин-формс и все. На стандартных контролах. Никаких мучений. Работы на пару часов (чтоб покрасивше было - дабы препод отстал).

megajack ()
Ответ на: комментарий от I-Love-Microsoft

Я вот на расте потихоньку этот курс перепиливаю. И компьютерную графику подтянул и новый ЯП подучил. Итого и алгоритмы освоил и новые для себя парадигмы впитал.

Gorthauer ★★★★★ ()

смотри на хабре например курс в духе «opengl своими руками. что происходит под капотом opengl pipeline» и творчески переработай: например, нарисуй 4D фигуры.

задание со звёздочкой*: 4D шутер. вот есть miegakure, 4D аркада, пазлы на проекции. а тут будет шутер, контра.

в общем суть такова: есть ниндзи и самураи, или шпиёны и охранники, как в splinter cell multiplayer.

и самураев основная тактика — раш, и кемпинг с AWP в распрыжке. поэтому воевать с ними «в лоб» больно.

у ниндзей тактика: ныкаться по теням и рэзать кынжалом со спины. при этом есть порталы в 4D измерение, которое позволяет им быстро выползть из норы, засадить и убежать. тут конечно нужен слай аппроач дабы остальные тебя не заметили: не шуметь, и быстро ныкаться в другую нычку. при этом, что характерно, быстро бегать по порталам не получится: есть стамина, которая расходуется на переход между 3D/4D и на бекстабы кынжалом.

поэтому нинзи должны работать связками: если соло, то ныкаться, рэзать, опять ныкаться, отсидеться с минуту в сортире с гавном. если повезёт, остальные самураи не заметят и можно их достать по одному.

если нинзей пара, то уже веселее: один отсижывается, другой устраивает варфоломеевскую ночъ.

ещё самурай пугается, когда ВНЕЗАПНО быстро рэжут более чем полотряда. у него начинаются панические отаку, он сидит и не может пошевелиться. либо наоборот, бегает как ошпаренный — но полюбому, точность на нуле, и катаной в лоб не попадает. может шотганом попадёт, а так всё в молоко.

поначалу можно изобразить что-то воксельное типа майнкрафта или «Sir, You Are Being Hunted.». затем можно взять 3D модельки и дорисовать им 4D измерение, чтобы не были плоские с четвёртой оси w.

тактика должна быть любопытная: кемперы ВНЕЗАПНО теряют все бонусы и накрываются паникой, а быстро бегающий скаут, при этом ныкающийся между порталами в 4D — вот наш герой, наш ниндзя в майке.

ну и корованы, конечно: куда же без них.

anonymous ()
Ответ на: комментарий от Gorthauer

да, на расте прикольно получается. покажешь код?

anonymous ()
Ответ на: комментарий от anonymous

https://github.com/gorthauer/rust-playground/tree/master/toyrender

Делаю маленькими набегами и ещё толком не рефакторил, но я слегка изменил алгоритм заполнения треугольников из статьи. Нужно как-нибудь сравнить их производительности.

Gorthauer ★★★★★ ()

Qt + QPainter, а QPainter-ом можно на чём угодно рисовать - хоть GraphicsScene, хоть обычный виджет или QDialog какой-нибудь.

quiet_readonly ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.