22 Сентября 2024, 05:25:52
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Просмотр сообщений
[1]
 1  Quest3D / Программирование / Запомнить переменную : 09 Июля 2010, 00:48:50
Всем доброго времени суток!

С Lua ещё не знаком. до этого не много писал на PHP, MySQL.
Собственно задумал сделать GUI, 4 камеры, 4 кнопки. нажимаем на каждую кнопку попадаем на соотв. камеру.
Сначала пытался сделать с помощи переключателей, а потом решил попробовать сделать в коде.
В общем сценарий такой
В Lua прописано это:
Код:
-- CallChannel function is called when channel is called
function CallChannel()
end

-- GetValue function is called when this channels is used as Value
function GetValue()
local flop1 = channel.GetChild(0)
local f1 = flop1:GetValue()
local flop2 = channel.GetChild(1)
local f2 = flop2:GetValue()
local flop3 = channel.GetChild(2)
local f3 = flop3:GetValue()
local flop4 = channel.GetChild(3)
local f4 = flop4:GetValue()

if f1 == 1 then
f1 = 0
f2 = 0
f3 = 0
f4 = 0
end

if f2 == 1 then
f2 = 1
f1 = 0
f3 = 0
f4 = 0
end

if f3 == 1 then
f3 = 2
f1 = 0
f2 = 0
f4 = 0
end

if f4 == 1 then
f4 = 3
f2 = 0
f3 = 0
f1 = 0
end
local all = f1 + f2 + f3 + f4
return all
end

к нему подключается 4 канала с кнопками. при наведении на каждую и клику, Lua канал получает еденицу, проверяет какая из кнопок нажата. назначает этой кнопки её номер остольные обнуляет. потом все значения складываются и это значение посылается на Channel Swithc где и переключается нужная камера.

собственно и сейчас всё работает. только пока кнопку на мышки держишь, и курсор с неё не отводишь)))

Да бы избавиться от этого не большого не удобства, хотел спросить совета, как можно запомнить полученное значение, пока программка не получило новой команды:?
можно ли написать какое то условие типа если все 4 кнопки = 0, то выводим запомненное число:?
прошу прощения... синтаксис мне пока ещё не понятен...
Зарание спасибо!
 2  Quest3D / Визуализация, Шейдеры / Re: [sh] Как сделать паркетный пол? () : 09 Февраля 2010, 12:20:57
Вот screen и пример сцены с настроенным отражением...
 3  Quest3D / Визуализация, Шейдеры / Re: [sh] Как сделать паркетный пол? () : 08 Февраля 2010, 18:35:41
я кажется разобрался!
на ноду с ReflectionCam нужно сделать ссылку с ноды ProjectionMatrix с оснавной камеры.
Просто не совпадали фокусное расстояние и т.п.
если кому нужно, могу скинуть исходник!
 4  Quest3D / Визуализация, Шейдеры / Re: [sh] Как сделать паркетный пол? () : 07 Ноября 2009, 18:13:14
Okey!
Спасибо, буду пробовать...
Попробую сделать обычный Plan, я сначало сделал Box и долго не мог понять, почему ни чего не происходит, а вместо отражения просто темнота, а потом понял что Box не прозрачный (вместо отражения камера показывает задную часть Box-а, т.е. всё вроде и работает просто камера ни чего не видет), и удолил задную грать... может быть проблемма в этом...
 5  Quest3D / Визуализация, Шейдеры / Re: [sh] Как сделать паркетный пол? () : 03 Ноября 2009, 10:08:42
У меня вопрос по сабжу, по этом с вашего разрешения влезу в эту ветку!
Сделал сценку по аналогии примеров в Queste с отражающей камерой, всё получилось!
Решил пойти дальше и попробовать заменить камеру Basic camera на Walkthroungh, и тут возникла проблема… отражение есть, но как я понял (а я действительно пытался над этим думать) фокусное расстояние у камер не одинаковое, то есть оно одинаковое не всегда… и нужно написать какую то функцию для того что бы при ведении основной камеры вниз, камера рендерещая текстуру перемещалась ниже, что бы точки фокуса всё время совпадали, но ведь тогда отражение будет удаляться, я правильно понимаю:?
В общем, есть ли тут надежда, или у этого проекта нет будующего:?)))
 6  Quest3D / Общие вопросы / Re: Light map и тени : 28 Октября 2009, 22:53:39
Атлична, СПАСИБО!
DDS True!
Уже попробовал)))
 7  Quest3D / Общие вопросы / Light map и тени : 27 Октября 2009, 14:21:46
Всем доброго времени суток!
Попробовал сделать комнату с несколькими моделями мебели. К каждой модели сделал свою LM (lightmap). После этого собрал все модели с текстурами и LM в q3d, но без источнека света. На мой вгляд получиось очено не плохо.
Но что бы тени были наиболее реалистичными некоторые LM я сделал 1024х1024, сначала пытался сделать в .dds но файлы были просто не реального размера))) по этому попробовал png 8bit серые. Размер сразуже стал на много меньше)))
В общем то вопроса как такового у меня нет, просто если у кого есть идеи по поводу как работать с тенями, и в каком формате делать LM, или может есть что почитать:? Просьба поделиться!
Заранее СПАСИБО!
 8  Quest3D / Общие вопросы / Re: Ctrl+Z : 27 Октября 2009, 13:48:32
Ну как алтернатива, подайдёт... но не всегда(((
Но всё равно спасибо!)))
 9  Quest3D / Общие вопросы / Re: Ctrl+Z : 23 Октября 2009, 21:49:42
Sqwer, Ты всё таки решил спасти вселенную:?
Ну не знаю...
Я вот лично нашёл для себя выход... я просто по чаше сохраняюсь!)))
Да и вообще то ни чего крименального в том что этой функции нет, то же нет! Если сделал что то не то, то это можно опять настроить, безвыходных сетуаций я ещё пока не втречал... но просто это ж мировая функция! работает не под одной OS, и практически во всех програмах...
Это так сказать, даже больше чем правило хорошего тона... мне кажется это даже уже одна из основных функций, которая должна быть в любой программе! а если её нет...
Ну в общем я просто ни как не пойму, как такая прога была разработана без данной функции... ужас!
Это просто НЕУДОБНА!!!
 10  Quest3D / Общие вопросы / Re: Ctrl+Z : 22 Октября 2009, 21:30:07
Эт как же:?
Я тут вопрос на форуме написал, получил ответ... а точнее инструкцию... и теперь если я её не сделаю, вся вселенная погибнет:?
Не я конешн SDK не впервый рас слушу, но ушь извольте... если б PHP с MySQL, то я думаю всё было б хорошо... а так придётся вселенной погаснуть как светодеотдной лампочке на сгоревшем монике...
хотя что там... всё равно когда ньть все там будем!
 11  Quest3D / Общие вопросы / Ctrl+Z : 22 Октября 2009, 21:00:11
Всем доброго времени суток.
Вот уже месяц как учусь работать с Q3D и 3D Max.
Q3D, атличная прога, оч удобная и понятная!
Но... ни как не пойму, почему в ней нет функции Ctrl+z, как так получилось:?
Или есть какой то выход:?
[1]