论坛

由用户创建的信息 Onis
23 July 2015 15:25
Здравствуйте, все получилось сделать, только столкнулся с одним затруднением, не смог получить ограничение vercatal translation limits of the HOVER camera , не нашел нужного метода в api, сделал заплатку, но вообще такую функцию надо бы встроить в api
19 July 2015 17:12
Спасибо за ответ, буду разбираться
19 July 2015 00:26
Жаль что нет ещё такого встроенного функционала, но и то что есть уже весьма хорошо. Осталось только вызывать нужные ограничения в нужное время. С вашими подсказками разобрался как закодить первый и второй вопрос. Обрабатывать ограничения при срабатывании обработчиков событий мышки наверно не самый лучший выход. Наверно стоит переопределить методы камеры hover, которые используются при зуме и повороте, вызываемые при событиях прокрутки колесика и при перетаскивании зажатой правой клавиши мышки(камера hover). Нашел где определяется часть методов модуля камеры /deploy/api_doc/camera.js.html , а вот найти где находится реализация камеры hover мне не удалось. Я надеюсь это не коммерческая тайна и вы сможете назвать какие методы нужно переопределить или где находится реализация камеры hover?
17 July 2015 16:03
Здравствуйте, хотел узнать можно ли у камеры с move style "hover" ограничить углы поворота по горизонтали (Use Horizontal Rotation). 2. И ещё можно ли задать ограничения на передвижение по x y относительно зума. Допустим стоит ограничение Use Horizontal Translation Limits 0 - 4 . Но эти ограничение одинаковые при любом приближении камеры (Use Distance Limits). То есть если я вижу всю сцену при минимальном зуме и могу её немного перемещать по горизонтали, то при максимальном зуме я вижу лишь часть сцены и движение по горизонтали не дают доходит до краев сцены. В идеале бы получить камеру которая на максимальном зуме видит всю сцену и нет перемещения по х у, а по при зумировании появляется возможность перемещать камеру до краев сцены.
16 July 2015 12:10
Лоадер, как я и предполагал, сделан с ручным выделением процентов на загрузку и отрисовку канваса. Спасибо что приложили архив буду искать разницу в параметрах, на первый взгляд у меня такие-же параметры, но почему-то альфы нет.
Ещё раз спасибо за то что сделали и загрузили пример.
16 July 2015 02:54

Нет, не только загрузку изображения но и все действия отрисовки в канвасе. Там операции занимают тоже какое-то время. Картинку при желании можно и заранее произвести, у вас есть демо на гитхабе /apps_dev/code_snippets/code_snippets_dev.html?scene=canvas_texture тут загрузка текстур идет после инициализации сцены. Можно ли сделать так, чтобы загрузка текстур происходила во время инициализации сцены


Тут я вас правильно понял. Скорее всего, вам надо будет написать свой прелоудер, завершающийся по окончанию отрисовок в canvas. Для многих демо-преложений мы делаем свои собственные прелоудеры (webplayer, как пример), это не так трудно. Если будут возникать вопросы, их можно задать тут.

Посмотрел webplayer, не совсем понятно как это связано с canvas текстурами. В weblayerе, насколько я понял, оформление прелоадера сделано, а тут несколько другое. Тут же идет речь о подгрузке изображений и их обработке.

Приведу пример кода
function(){
    canvas = $.createElement({nodeName:'canvas', width:'4096', height:'4096'});
    var ctx_landscape = canvas.getContext('2d');

    if (ctx_landscape) 
    {		     
	    var image = new Image();
		image.src = 'texture.jpg';
		image.onload = function()
		{	
			var pattern = ctx_landscape.createPattern(image,'repeat');
			ctx_landscape.fillStyle = pattern;
			ctx_landscape.fillRect(0,0,ctx_landscape.canvas.width, ctx_landscape.canvas.height);
			
			ImageFromJpg.getData({type:'pattern', url:'texture2.jpg'},'l2.jpg', function(data)
			{	
				ctx_landscape.drawImage(data, 0, 0);

				ImageFromJpg.getData({type:'mask', color:'rgba(0, 0, 0, 0.1)'},'l1.jpg', function(data)
				{	ctx_landscape.drawImage(data, 0, 0);	
				})
			})
		}
	}
}
	

Речь идет чтобы втулить выполнение этой функции в расчет процентов в update_preloader(percentage) . Я не вижу как могу вмешаться в вычисление процентов. Можно лишь остановить на 100% прелоадер и сделать зависание если не выполнилась функция.

Да сцену можно не открывать пока канвас не сгенерируется, но зависание на 100% это костыль. Речь идет о том можно ли учитывать загрузку изображений для канваса и отрисовку канваса при расчете процентов прелоадера?

Посетила мысль ещё об одном решении, оно меньше напоминает костыль, напишу, может кому пригодится. Можно в update_preloader(percentage) у получаемых процентов отобрать 30% скажем на генерацию канвас текстур, по мере прогресса можно начислять эти 30. Итого на загрузку сцены выделить 70% и на генерацию текстур 30%

Кстати у вас в документации не указан второй параметр update_preloader(percentage, TIME) . Проект забабахали конечно невероятный, молодцы. Жаль только, что мало о нем кто знает, большое бы комьюнити и эти ответы будут сразу в гугл запросах

15 July 2015 22:26

Нет, не забыл все эти настройки выставлены. На одном json проверяю, если беру текстуру из png нормально, беру из канваса черные пиксели. Если бы не было настроек png наверно тоже слетал бы.
Можете приложить пример?
15 July 2015 17:22
Проблема вся в том, что полученные результат не получается применить с использованием canvas текстуры
15 July 2015 17:20
Из 2х jpg можно собрать тот же png в канвасе, могу прислать исходит с примером
15 July 2015 15:13

то она не учитывается в прелоадере, когда он пропадает


Вы имеете ввиду загрузку изображения, которое затем будет отрисовываться в canvas'e текстуры?
Тут уже придется производить изменения в загрузке движка. Мы подумаем над этим.
Если все же вам необходима смена текстуры, без использования canvas, то можно воспользоваться нодовой анимацией. Там не возникнет такой проблемы

Нет, не только загрузку изображения но и все действия отрисовки в канвасе. Там операции занимают тоже какое-то время. Картинку при желании можно и заранее произвести, у вас есть демо на гитхабе /apps_dev/code_snippets/code_snippets_dev.html?scene=canvas_texture тут загрузка текстур идет после инициализации сцены. Можно ли сделать так, чтобы загрузка текстур происходила во время инициализации сцены