Как нарисовать квадрат
Этот пост является ответом к этому комментарию.
Однако оформлен отдельным постом так как материал может оказаться полезным.
Заранее предупреждаю, я не художник, в художке никогда не был. Весь материал ниже отражает мою проф деформацию.
Повторяйте на свой страх и риск, автор не несёт никакой ответственности за ваши действия.
Итак, преступим:
Как нарисовать квадрат
Таким же образом можно рисовать любой прямоугольник с желаемым соотношением сторон, но здесь и далее будем говорить о квадрате.
Что может быть сложного в том чтобы нарисовать квадрат? Рисовать мы его будем в перспективе. Как известно, для построения перспективы используются точка схода (vanishing point). Однако точки схода помогают построить параллельные и перпендикулярные линии, но не помогают в соблюдении пропорций.
Давайте рассмотрим случай с двумя точками схода, так будет проще объяснить, а потом если нужно, я покажу, что будет в случае с одной точкой схода.
Для начала, выберем линию горизонта и две точки схода. Для примера, чтобы сделать сложным угадывание пропорций квадрата на глаз, одна точка схода будет ближе к центру, а другая - за пределами рисунка.
Как далеко располагать точки схода друг от друга? Нужно понимать, что мы рисуем точки схода, которые соответствуют двум перпендикулярным направлениям. Соответственно угол между ними - 90 градусов. Есть такая штука как field of view (FOV), это угловой размер поля зрения. Выбор этом величины очень крайне важен, так как существенно меняет восприятие рисунка.
Вот например анимация с википедии, где одновременно меняется FOV и расстояние до объекта, так чтобы размеры объекта на проекции оставались постоянными.
FOV определяет, насколько сильными будут перспективные искажения. Обычно, если нужно изобразить объект который находиться далеко, то нужны минимальные перспективные искажения, если нужен большой объект близко, то наоборот - большие.
Соответственно, чем меньше расстояние между точками схода на нашем рисунке, тем больше перспективные искажения. Я буду рисовать две точки схода, так как нам понадобятся дополнительные построения, однако я также изображу рамку, которая будет обозначать границы нашего рисунка.
Где же расположить дальнюю грань? Какая линия даст нам квадрат: красная, зеленая или синяя?
Конечно, можно попробовать угадать, нарисовать на глаз и при наличии должного опыта, возможно даже получить правильный квадрат. Но мы гадать не будем. Для начала, нужно провести вертикальную ось рисунка, она должна быть по центру:
Затем, отметим средину, между точкой схода V1 и V2:
Начертим окружность, соединяющую V1 и V2. Отметим пересечение этой окружности с вертикальной осью.
Это пересечение - особая точка, я ее называю точка "вниз". Она имеет такую особенность, что из нее обе точки схода видны под прямым углом. И эта точка точно соответствует направлению вниз.
Затем, нам нужно провести прямую из точки "вниз" так, чтобы она образовала угол под 45. Отметим пересечение этой прямой с линией горизонта как V3. Это третья точка схода, для линий под 45 к двум другим точкам схода.
Воспользуемся точкой схода V3, чтобы нарисовать диагональ нашего квадрата. Теперь положение дальней грани очевидно.
Как видим, мы совсем не угадали с дальней гранью в самом начале. Да, на рисунке может показаться, что что-то не то, но это самый настоящий квадрат, я гарантирую это. Для убедительности, давайте дорисуем его в куб.
И конечно же, все эти построения можно не делать, а на глаз определить положение точки "вниз" и затем на глаз поставить V3. А дальше рисовать с помощью V3 диагонали для примитивов.
С пропорциями в перспективе достаточно просто налажать, надеюсь описанный способ поможет исправить ситуацию.
Вот например, замечательный рисунок Xand'a, который мне очень нравится, но там беда с перспективой. Технически, все точки схода, все линии, все стоит правильно, но ошибка в пропорциях.
Способ выше, я придумал сам для себя, однако вполне возможно, что подобное давно используется или есть что-то лучше.
Если нужно, могу чуть позже в камменты скину случай для одной точки схода.
Подробнее
Р/ч-Мцд Риг/ВКА
Р/ч-Мцд Риг/ВКА
Р/ч-Мцд Риг/ВКА V/
СПч-А И НА РИ СУНКА- ГРЛН1/Щ/1 РИГ УИК А
СПч-А И НА W С-У И IO- ГРАНИЦ/! РИГ УИК А
СПч-А И НА РИ СУНКА- ГРЛН1/Щ/1 РИГ УИК А
Творческая лаборатория,разное,Каляки-Маляки,каляки-маляки, Каляки-Маляки, Каляки маляки, ,длиннопост
Спасибо за классный пост
Нет, знаю почему. Недостаточно подробно там где это нужно, оставляет некоторые вопросы без ответов.
Почему именно на пересечении окружности и вертикали угол в 90(да,да... но тем не менее)? Как быть уверенным, что тот угол не подвержен перспективному искажению? "Да, на рисунке может показаться, что что-то не то, но это самый настоящий квадрат, я гарантирую это." А вдруг именно по этому?)
И почему вертикаль именно в середине рисунка? Точка взгляда? А как же композиция и прочие вещи?
Частичные знания могут быть вредными.
И у Xand'а ошибка именно в линиях, а не пропорциях. Неправильная перспектива, + упущены детали которые помогли бы казаться ей правильной.
Wikipedia написал:
>> Просто выбрал вторую точку перспективы неправильно — синюю, а не зеленую, которая лежит на горизонте и вне кадра.
Ну как это неправильно выбрал точку перспективы? Их можно задать и так, как это сделал Xand. Я специально в примере выше, выбрал точки схода таким же образом.
И с линиями все в порядке, все параллельности соблюдены. Вся причина в том, что пропорции неправильные.
Чем ближе точки схода друг к другу, тем больше перспективные искажения и больше шансов налажать. То, что предложил Wikipedia, это просто раздвинуть из немного. Тогда искажения меньше и ошибка в пропорциях меньше.
Но справедливости ради, даже в исправленном варианте Wikipedia, все равно лажа с перспективой, хоть и не так сильно заметная.
Wikipedia исправил ошибку не уменьшением искажений, а приведением их к общему, пускай и не до конца, из-за чего тебе и кажется, что всё еще что то не так. Даже просто посмотри на первую его схему, точка где сходиться параллель досок и крыша над ней
Xand: Вообще у меня было точек 5 и они перемещались, в какой то момент две потерялись и одна уехала ) Я думаю этого хватит.
Насчет придирки к посту. Гораздо удобней пользоваться инструментом когда знаешь его устройство и принципы работы, а не волшебной палочкой, которая должна "помочь". Можно применить его в других ситуациях например и т.д.
Хотя, может это и исключительно мой бзик :D
Мне ты на слово не веришь, говоришь, покажи почему там угол 90, почему искажений нет, и т.д.. А тут сказали, что точка выбрана не верна, ок, неверно так не верно.
Почему не верно? По какому критерию неверно?
И с той позицией точек, можно было бы нарисовать правильно.
Ошибка в том, что дальняя грань бассейна нарисована слишком далеко. Она там почти на горизонте, находится за километры от нас. И купол гигантский, то же на пару километров возвышается.
И несмотря на то, что бассейн уходит почти в бесконечность, текстура воды слева нарисована так, как буд-то там почти нет перспективных искажений, отчего кажется, что там перепад высот.
Грань бассейна не может быть нарисована слишком далеко, от этого зависят только размер и форма бассейна, но никак не восприятие всей картины в целом.
Я чуть позже сделаю схему что бы показать что я имею в виду, если уж на словах я так хреново объясняю.
Красные линии - точка схода балок ближней стены, потолка и параллельных им граней бассейна.
Синие линии - точка схода по которой нарисованы доски.
Зеленые - точка схода по которой нарисована дальная стена.
Желтые линии проведены из зеленой точки схода, и они проведены в местах над которыми должны быть балки на стеклянной крыше, на схематическом срезе слева я примерно отметил высоту на которой проходят желтые линии.
Теперь проблема которую я пытаюсь объяснить.
На пол мы смотрим с небольшой высоты и с очень большим углом обзора, искажение очень сильное. Дальняя стена, нарисована из той же точки(почти) и она воспринимается в том же пространстве что и пол.
В то время как ближняя стена, и её отражение в бассейне имеют минимум искажений, мы смотрим на них с совершенно другим углом обзора и воспринимаются они совершенно иначе, будто другое измерение. На мелком рисунке я разделил эти две зоны разным цветом.
Wikipedia когда вынес точку перспективы вправо, выровнял уровень искажения по всему рисунку, он сделал это не идеально потому некий дискомфорт еще есть.
Если нарисовать грань бассейна ближе, он только станет уже, но не перестанет казаться кривым, потому что две части рисунка нарисованы совершенно с разными углами обзора.
К тому же, у широкого угла обзора есть еще и новые искажения и на рисунке их нет, но это уже тема ля отдельного разговора
Если уж и это тебя не убедит, то я сдаюсь.
Чисто с технической стороны, выполнить рисунок с выбранными точками схода можно, и если сделать это правильно, мозг он ломать не будет.
Желтые, зеленые и синие линии, это все одна точка схода. Т.к. соответствует одному и тому же семейству параллельных прямых.
>> мы смотрим на них с совершенно другим углом обзора
Как так? Что ты понимаешь под углом обзора? Я понимаю вот это: https://en.wikipedia.org/wiki/Angle_of_view . Угол обзора одинаков для всего рисунка по умолчанию. Его нельзя сделать разным для разных частей рисунка.
>> Если нарисовать грань бассейна ближе, он только станет уже, но не перестанет казаться кривым
Да да, перестанет :). Но рисунок будет смотреться иначе.
Я не просто так разделил внизу рисунок цветами. Обрати внимание на голубую часть. Единственная точка схода которой он соответствует - красная, и после этого ты говоришь что рисунок выполнен с учетом всех параллелей? =_="
Посмотри ту статью, что ты скинул, самая первая схема. Человек видит вокруг себя округлую панораму. Но рисунок на который они переноситься - плоский, нельзя перенести панораму на плоскость без искажений. И чем больший угол обзора этой панорамы ты пытаешься втиснуть в рамки рисунка - тем сильнее искажения(как глобус и плоские карты). Когда я говорю что у них разные углы обзора, я имею в виду именно этот факт. Очередная картинка, цвета соответствуют схеме в прошлом сообщении, черная линия - холст. Что бы понять уровень искажения можно просто сравнить длинну линии с длинной её проекции на холст
А еще просто к слову скажу, горизонт и уровень взгляда это не одно и тоже, а то ты к нему так прицепился, что настораживает.
Нигде не идет речь об округлой панораме, нигде. Мы говорим о перспективной (центральной) проекции. Панорамы это совершенно другая, не относящаяся к теме штука.
Нет там никаких разных углов обзора. Последняя картинка мне вообще мозг взорвала. При чем тут это?
Голубая часть не противоречит ни одной из точек. Там вообще ничего не противоречит ни одной из точек.
Вряд ли найду в себе силы боле доступно выразить свою мысль.
Рисовать, что бы наглядно показать о чем я говорю мне тоже лень =_="
Окей, покажи мне хотя бы одну линию, которая принадлежит голубой части и при этом не соответствует синей точке схода (да или любой другой).
Мы все время до этого говорили о перспективной проекции, при которой трехмерные объекты переносятся на плоскость с искажениями. И тут ты делаешь такое заявление, внезапно.
Чувак, честно, я устал. Давай не будем продолжать это?
А теперь яснее стало? Согласись, если бы я все это (что ниже) вывалил в сам пост, то он был бы нечитаем.
>> Хотя, может это и исключительно мой бзик :D
Да нет, все правильно, это не бзик. Я сам такой. Пока не знаешь как оно работает, не знаешь и границ приминимости, и не знаешь, что важно, а что нет.
То, что раздражает, это хорошо. Никогда нельзя верить на слово. Да я не описывал только шаги и не объяснял мотивацию, стоящую за ними потому, что иначе пост был бы слишком перегружен.
Ну раз спросили.
Начнем с конца.
1. Диагональ
У нас есть две точки схода. Мы условились, что они соответствуют двум перпендикулярным направлениям. По ним можно легко нарисовать прямоугольник в перспективе.
Но мы рисуем квадрат, у квадрата диагональ лежит под 45 к его граням. Если бы у нас была точка схода, соответствующая направлению, которое образует угол 45 градусов с двумя другими точками схода, то мы бы построили диагональ, а значит и квадрат.
Возражения есть? Как по мне, тут предельно ясно.
2. Точка схода для линий образующих 45 градусов с двумя другими направлениями
Эту точку нельзя просто взять и произвольно поставить. Она не может находится в произвольном месте. А точное положение угадать тяжело.
Если бы на рисунке была такая точка, для которой горизонтальная плоскость проецировалась без искажения, можно было просто отмерить 45 градусов к точкам схода и провести линию, пересечение которой с линией горизонта дало бы искомую новую точку схода.
Возражения есть?
3. Точка без искажений
Горизонтальная плоскость будет проецироваться без искажения только в той точке, в которой она перпендикулярна к наблюдателю.
Если смотреть на тетрадный лист строго перпендикулярно, то искажений нет, если под углом - то искажения есть.
Чтобы найти такую точку, нужно опустить перпендикуляр из точки наблюдателя, к горизонтальной плоскости. Эта точка на горизонтальной плоскости и будет той точкой, которую я в описании назвал точкой "вниз"
Возражения есть?
4. Опускаем перпендикуляр
А вот тут внимание, здесь все становится не слишком тривиальным.
Чтобы быть чуть более конкретным, вот вид со стороны:
Давайте сузим поиски. Направление на V1 и V2 перпендикулярны, т.е. образуют прямой угол. Значит в точке без искажений, угол тоже должен быть прямым. Из теоремы Фалеса углол прямой, будут лежать на окружности диаметр которой построен на V1 и V2.
Отвечая на вопрос про прямой угол:
Другими словами, нужно провести линию на рисунке, которая:
1) Перпендикулярна горизонту
2) Проходит через перпендикуляр опущенный из наблюдателя на проекционную плоскость. Перпендикуляр опущенный из наблюдателя на проекционную плоскость будет в центре рисунка, думаю это самоочевидно.
Т.е. нужна линия которая:
1) Перпендикулярна горизонту
2) Проходит через центр рисунка
Это и была та самая ось, которая делили рисунок пополам. Да я в описании метода не уточнил что она должна быть перпендикулярна горизонту.
Линия должна проходить через центр, и это не имеет никакого отношения к композиции.
Теперь мы знаем, что точка "вниз" лежит на окружности и на построенной линии. Их пересечение определяет эту точку однозначно.
Вот и все, думаю было убедительно.
Пользуйтесь методом и стройте правильные квадраты.