Pull to refresh

Comments 15

В Safari тоже работает. А в чем фишка я так и не понял.
Обычно, разработчики просто затеняют пиксели. Либо до нуля — тогда вообще ничего не видно, либо нет — тогда, если присмотреться, можно увидеть все, что интересует.
Здесь же к слабоосвещенным участкам применяется размытие, что не позволяет рассмотреть детали, но сохраняет общие черты; и выделяется синий цвет — что, на мой взгляд, добавляет каплю реализма.
Ну во флеше я в тайловом движке делал вообще по-идиотски — накладывал полупрозрачный фильтр на каждый тайл. Лагало жутко, но выглядело красиво)
Идея интересна, спасибо.

Но писать подобные вещи на джаваскрипте — это, конечно, — то еще извращение. :)
Зато можно предоставить прототип для ознакомления широкой аудитории. В извращении есть свой плюс.
Боюсь, что в будущем будет целый парад подобных извращенцев, и я очень надеюсь, что не буду плестись в его хвосте )
Вообще, это базовые основы которые даются в художественной школе: в тенях холоднее, на свету — теплее.
Я обратил внимание на то, что, в условиях недостаточного освещения, я воспринимаю видимые объекты преимущественно в синеватых тонах и с небольшой потерей резкости. Возможно это чисто психологическое восприятие, но мы сейчас не об этом.

«В темноте синий цвет оказывает большее влияние, чем красный, при равной мощности излучения, а на свету — наоборот.»

В быстрой версии демки у вас объекты имеют синие оттенки там, где их не должно быть. А в медленной, я не замечаю изменения цвета.

А вообще, сложно сделать реалистичное изменение цвета в зависимости от изменения освещения, если учитывать адаптацию зрения. И как мне кажется, это и не нужно.
Если объект сделать невыпуклым, то начинает глючить — он не хочет удаляться.
Помнится, где-то давно-давно видел, использование просто двух картинок — на одной все темное и без ключевых деталей, а вторая — полная. И кружочек (ака фонарик) из второй накладывается на первую в нужном месте. (ни о каких размытостях и плавностях там речь не шла — при тех графических режимах то...)
По поводу координат, я использую вот такую функцию и проблем вроде не замечал. В вашем же случаи нужно указать сдвиг т.к. канва по центру.
function getMousePos(canvas, evt){
var obj = canvas;
var top = 0;
var left = 0;
mouseX = evt.clientX — left + window.pageXOffset;
mouseY = evt.clientY — top + window.pageYOffset;
}
JS не знаю, но раньше никаких проблем с пониманием чужого кода, вроде бы, не замечал… Не могли бы вы подсказать, зачем вы 1) переименовываете аргумент функции, 2) потом нигде не используете ни оригинал, ни его копию, 3) объявляете пару нулевых переменных, а затем ни разу их не изменяете, да ещё и делаете пустое вычитание?

function getMousePos(evt){
    mouseX = evt.clientX + window.pageXOffset;
    mouseY = evt.clientY + window.pageYOffset;
} 


Чем плох такой код?
1) Пустое вычитание только для примера, а вообще это сдвиг так как канва может быть не в координатах(0,0).
2) Новая переменная лишняя (я хотел расширить пример и задействовать только передаваемый canvas, но по том не стал т.к. в Лисе было большое падение fps).

Оперы же у меня нет.

А зря, по моим наблюдениям она справляется шустрее хрома. Вот только та библиотека блюра на ней несколько глючит:
блюр действительно очень интересно выглядит :)
Sign up to leave a comment.

Articles