forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Фонарь (http://forum.boolean.name/showthread.php?t=18320)

CostUm 05.07.2013 22:44

Фонарь
 
Каким образом можно реализовать в блитце фонарь? желательно без привлечения сторонних библиотек.

Nex 06.07.2013 00:41

Ответ: Фонарь
 
Весь уровень сделать одним объектом, создать спрайт с картинкой круга и привязать к камере, изменить EntityOrder и EntityFx, но все это будет стремно выглядеть.

Кирпи4 06.07.2013 00:42

Ответ: Фонарь
 
Больная тема. Есть несколько методов, тормозные как собаки, так что по идее нет, без либ хренушки

Gector 06.07.2013 00:47

Ответ: Фонарь
 
Цитата:

Сообщение от CostUm (Сообщение 262728)
Каким образом можно реализовать в блитце фонарь? желательно без привлечения сторонних библиотек.

Без либ красиво - никак.

CostUm 06.07.2013 00:50

Re: Фонарь
 
ну а есть какие-нибудь либы с минимум затратами на создание фонаря?)

IgorOK 06.07.2013 01:37

Ответ: Фонарь
 
http://www.ixbt.com/video/projectivetexture.shtml

CostUm 06.07.2013 01:41

Re: Ответ: Фонарь
 
Цитата:

Сообщение от IgorOK (Сообщение 262751)

нормал

Arton 06.07.2013 01:54

Ответ: Фонарь
 
Вложений: 1
Вложение 19318

CostUm 06.07.2013 01:58

Re: Ответ: Фонарь
 
Цитата:

Сообщение от Arton (Сообщение 262755)

да, что-то подобное я находил, но почему-то при использовании загружаемого меша, вместо создоваемого как там, фонарь ложится как-то кривовато. или если убрать здесь FlipMesh cube
В добавок к этому не смог понять и реализовать включение и выключение фонаря по нужде.

Arton 06.07.2013 22:22

Ответ: Re: Ответ: Фонарь
 
Цитата:

Сообщение от CostUm (Сообщение 262756)
да, что-то подобное я находил, но почему-то при использовании загружаемого меша, вместо создоваемого как там, фонарь ложится как-то кривовато. или если убрать здесь FlipMesh cube
В добавок к этому не смог понять и реализовать включение и выключение фонаря по нужде.

Потому-что там создаётся копия объекта и на копию проецируется текстура света.
Копия ставится в координаты по умолчанию, то есть нулевые.

Добавил две строчки но лучше не стало. Копии мешей, сделанные в 3D Max расставляются как хотят. Думаю корректнее будет проецировать текстуру на объект без копий. Однако как это совмещать если будет несколько текстур.
Код:

Function DL_SetReceiver(mesh)

        dlr.dl_receiver = New dl_receiver
        dlr\mesh = CopyMesh(mesh)

        PositionEntity dlr\mesh,EntityX#(mesh),EntityY#(mesh),EntityZ#(mesh)

        RotateEntity dlr\mesh,EntityPitch#(mesh),EntityYaw#(mesh),EntityRoll#(mesh)
       
        PaintMesh dlr\mesh,dl_brush
       
End Function


CostUm 06.07.2013 23:04

Re: Фонарь
 
короче гнилая тема этот фонарь.. а жаль, хотел сделал геймплей с упором на это)

Arton 07.07.2013 02:36

Ответ: Фонарь
 
Вложений: 1
Кстати вот ещё вариант - Вложение 19324

CostUm 07.07.2013 16:06

Re: Фонарь
 
Во, вот это прям нормал) Только там что, нужны *.bsp модели за место обычных (*.b3d там всяких)?

ABTOMAT 07.07.2013 18:08

Ответ: Re: Фонарь
 
Цитата:

Сообщение от CostUm (Сообщение 262841)
Во, вот это прям нормал) Только там что, нужны *.bsp модели за место обычных (*.b3d там всяких)?

Нет, просто, видимо, у автора такая завалялась.
А вообще пример тупой, там сначала рендерят светлое, потом кладут на спрайт фонаря и ещё раз рендерят с тенями. Зачем так жить?

Gector 07.07.2013 18:43

Ответ: Фонарь
 
Цитата:

Сообщение от Arton (Сообщение 262811)
Кстати вот ещё вариант - Вложение 19324

Это странно работающая дырка а не фонарь. В таком случае реалистичней ставить черный полупрозрачный мэш-конус вокруг камеры.

ABTOMAT 07.07.2013 18:57

Ответ: Фонарь
 
Цитата:

Сообщение от Gector (Сообщение 262846)
Это странно работающая дырка а не фонарь. В таком случае реалистичней ставить черный полупрозрачный мэш-конус вокруг камеры.

А как же лайтмапы?

Gector 07.07.2013 20:26

Ответ: Фонарь
 
Цитата:

Сообщение от ABTOMAT (Сообщение 262847)
А как же лайтмапы?

Лайтмапы - это статика же. Ему динамика нужна.

ABTOMAT 07.07.2013 20:47

Ответ: Фонарь
 
Пфф, тогда пойдёт обычный источник света конусный.

Gector 07.07.2013 20:54

Ответ: Фонарь
 
Цитата:

Сообщение от ABTOMAT (Сообщение 262851)
Пфф, тогда пойдёт обычный источник света конусный.

Не. Ты не понял. У него геймплей на этом завязан А конусный источник света будет давать выглядеть некрасиво при низкой детализации.

ABTOMAT 07.07.2013 22:21

Ответ: Фонарь
 
Цитата:

Сообщение от Gector (Сообщение 262854)
Не. Ты не понял. У него геймплей на этом завязан А конусный источник света будет давать выглядеть некрасиво при низкой детализации.

Цитата:

Сообщение от Gector (Сообщение 262850)
Лайтмапы - это статика же. Ему динамика нужна.

Тогда я не понял что такое "динамика". Это отказ от использования лайтмап?

Arton 08.07.2013 00:37

Ответ: Фонарь
 
Вложений: 1
Цитата:

Сообщение от Arton (Сообщение 262755)

Доработал пример.

Теперь ничего не копируется, текстура фонарика бегает по второму каналу.
Выключение фонарика условное, текстура блендится до нуля и меняется эмбиент.
Наверное можно ещё что-то придумать.

Вложение 19327

Мигать фонарик не может. Нету дальности освещения. Но думаю это мелочи.

P. S. Хотел лайтмапы накрутить, но думаю и так всё должно работать.

Arton 08.07.2013 01:08

Ответ: Фонарь
 
Учтите код "грязный", я его так и не почистил, и хз что там с оптимизацией.

К с ним должны ашадовские тени неплохо смотреться.

На локациях с фонариком тогда можно вообще не использовать лайтмапы :) Что бы не мешали.

И ещё неплохо бы сделать проверку на расстояние пиками, что бы в дали свет отключать. Хотя учитывая что текстура просто ставится на ноль, хз как :(

Arton 08.07.2013 01:20

Ответ: Фонарь
 
Э, забыл, отключать и включать кнопками "1", "2".

ABTOMAT 08.07.2013 01:27

Ответ: Фонарь
 
Цитата:

Сообщение от Arton (Сообщение 262872)
P. S. Хотел лайтмапы накрутить, но думаю и так всё должно работать.

Один канал - лмапы, второй канал - фонарик. А диффуз куда?

Arton 08.07.2013 01:33

Ответ: Фонарь
 
Цитата:

Сообщение от ABTOMAT (Сообщение 262882)
Один канал - лмапы, второй канал - фонарик. А диффуз куда?

Ммм.. а разве без каналов нельзя?
Если так, то ашадов в помощь.

P. S. Сейчас посмотрим...

ABTOMAT 08.07.2013 01:46

Ответ: Фонарь
 
Цитата:

Сообщение от Arton (Сообщение 262883)
Ммм.. а разве без каналов нельзя?
Если так, то ашадов в помощь.

P. S. Сейчас посмотрим...

Ну ашадов не даёт возможности юзать больше каналов.

Arton 08.07.2013 01:48

Ответ: Фонарь
 
Ты, прав.
А если просто мультитекстурирование, не меняя канал?

Короче, хз, без теней тогда вообще, или фонарика :(

Есть ещё одна идея.

Свет фонарика натянуть на меш, и меш будет елозить по объектам, повторяя их форму.

__________________________________________________

Заюзать вот этот код.

Кстати, если ашадов для теней использует второй канал, так как же тогда он будет существовать с лайтмапами?

__________________________________________________

Цитата:

Сообщение от ABTOMAT (Сообщение 262884)
Ну ашадов не даёт возможности юзать больше каналов.

Эм, ABTOMAT, ты уверен что ашадов для теней использует второй канал текстуры?



__________________________________________________

Я не знаю почему, но с ашадовскими тенями всё работает.

Если игра в полутёмных помещениях, то в данном случае можно и без лайтмап обойтись.

ABTOMAT 08.07.2013 15:17

Ответ: Фонарь
 
Нет конечно, там они вообще на отдельном меше.

Arton 08.07.2013 17:09

Ответ: Фонарь
 
Цитата:

Сообщение от ABTOMAT (Сообщение 262906)
Нет конечно, там они вообще на отдельном меше.

Зачем ты тогда меня тролил смущал... :(

Значит проблем вообще быть не должно. :-)

А вот с л-мапами ничего не получилось, что логично :(

ABTOMAT 08.07.2013 18:23

Ответ: Фонарь
 
Я не трАлил, я думал, у тебя есть какое-то решение.

MadMedic 10.07.2013 17:09

Re: Фонарь
 
Скрин:
http://forum.boolean.name/attachment...3&d=1303132784

Код:
http://forum.boolean.name/attachment...4&d=1303132825

Тема:
http://forum.boolean.name/showthread.php?t=14479


Часовой пояс GMT +4, время: 07:29.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot