forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   AShadow и рукожопие (http://forum.boolean.name/showthread.php?t=18495)

impersonalis 26.08.2013 00:45

AShadow и рукожопие
 
Вложений: 2
Последний раз когда пользовался ашадоу для подобной задачи - всё работало без нареканий. Цель: фрагментировано осветить лабиринт.
В актуальной реализации, стенки лабиринта (на это грешу) создаются следующим кодом:
Код:

Function TLevel_MISC_CreateWallSprite%(zx#,y#,TF%)

        Local cx#, cy#, cz#, mesh%, surf%, v1%, v2%, v3%, v4%
       

        cx = zx * 0.5
        cy = y * 0.5
        cz = 0

        mesh = CreateMesh()

        br=CreateBrush()

        If TF<>0
                BrushTexture br,TF
        EndIf
        surf = CreateSurface(mesh,br)


        v1 = AddVertex(surf, +cx, +cy, +cz, 0.0, 0.0)
        v2 = AddVertex(surf, -cx, +cy, +cz, 1.0, 0.0)
        v3 = AddVertex(surf, -cx, -cy, +cz, 1.0, 1.0)
        v4 = AddVertex(surf, +cx, -cy, +cz, 0.0, 1.0)

        AddTriangle(surf, v1, v2, v3)
        AddTriangle(surf, v3, v4, v1)

        FreeBrush br

        EntityBox mesh,-zx*0.5,-y*0.5,-0.05,zx,y,0.1
               
        CreateReceiver(mesh)
        CreateCaster(mesh)
       
        Return mesh
End Function

Наблюдаю следующий артефакт (см. скрнишот).
Вложение 19613
Серия снимков одного и того же места с разного (слабо отличающегося) расстояния. И под разными углами.
1 снимок - всё идеально, как и должно быть в природе.
2 снимок - чуть двинулся вперед и тень развалилась.
3 снимок - ещё несколько шагов и тень начинает появляться.
4 снимок - влияние угла обзора.
Свет создаётся так (паллиатив):
Код:

LIGHT=CreateLight(2)
RotateEntity light,90,0,0
PositionEntity light,*****
LightRange LIGHT,10
LightColor LIGHT,255,255,0
SetSLight(LIGHT,2,100)

ЧЯДНТ?

Ещё один вопрос (уже не касаемо ашадоу, но возможно, связанный с первым).
См. скриншот.
Вложение 19614
Два кубика прекрасно освещены и малый бросает тень на большой. Тут же мы видим серые унылые стены. Насколько я помню из речей Джокера, в б3д повертексное освещение, и, как я понял, такие скудные (в полигональном смысле) модели будут освещены весьма дискретно и убого (и про тени ашадоу можно тоже забыть). Но что же делать? Усложнять сетку? Или дело в другом?

Спасибо!

dsd 27.08.2013 00:27

Ответ: AShadow и рукожопие
 
Может от того что нормали по человечески не заданы в коде? В смысле что никак
.

impersonalis 27.08.2013 01:25

Ответ: AShadow и рукожопие
 
Разве недостаточно направления обхода вершин при создании треугольника?

Черный крыс 27.08.2013 01:29

Ответ: AShadow и рукожопие
 
В коде выше вообще нормали не устанавливаются. По умолчанию они в нулях.

Самый простой способ - это UpdateNormals(mesh), блиц автоматом просчитает их, правда иногда бывает он высчитывает при помощи бубна.

Наскок я помню вручную нормали ставятся через TriangleNormal(nx, ny, nz), компоненты вектора нормализованы [0..1].

Получить нормали же TriangleNX(Y\Z).

dsd 27.08.2013 01:29

Ответ: AShadow и рукожопие
 
неа, это только задаст с какой стороны треугольник виден будет. Так что надо еще и саму нормаль указывать , либо же UpdateNormals() чтобы оно само посчитало.

Черный крыс 27.08.2013 01:35

Ответ: AShadow и рукожопие
 
Насчет теней, наскок помню это Z-буффер виноват. вроде CameraClsMode()

impersonalis 27.08.2013 01:35

Ответ: AShadow и рукожопие
 
Спасибо! UpdateNormals(mesh) решил вторую проблему, но первая осталась (CameraClsMode не помог) :(

Wegox 27.08.2013 04:15

Ответ: AShadow и рукожопие
 
Интересно, impersonalis? ты видео на ютуб не заливаешь, потому что живёшь в соседней галактике:-D

Я вот сейчас сам с AShadowЭ работаю, но только с его эффектами, тени не трогаю... они у меня не отображаются просто...

Библиотека на новом пк стала работать не стабильно и вообще через раз то-есть нет смысла делать игры, Я вот даже демки на ютуб заливаю а то белый экран вместо демки после компиляции:-D ну это ладно, есть же он - Unity3DЭ

Я уже писал что учился Unity партируя проект Владислава crystalium [0.9a demo] http://forum.boolean.name/showthread.php?t=17970
Но Я не писал что проект в 3D ну что естественно и конечно-же Я экспериментировал с тенями, так вот перед тем как изучать язык! Я освоил сам Unity редактор - и вот там тени! такие какие тебе нужны как раз, мне так кажется...

Да!!! а ещё есть такой вот исходник лабиринта;

Прям как-будто, кто-то! специально для тебя делал:-D представляешь!!! полностью эффектами заряжен, только включи.;)
Но Я! не буду предлагать тебе Unity3D.

А там где тени разъезжаются? не туман у тебя?

Да кстати Я когда-то... для своего проекта использовал не тени, а это -затенение, ну там у меня много объектов было всяких, мне какбэ не подошло, но красиво смотрелась а у тебя только лабиринт да? один источник света да? вот тут посмотри Синий динамический свет посмотри может тебе и AShadowЭ не нужен будет;)

ant0N 27.08.2013 07:15

Ответ: AShadow и рукожопие
 
А я бы предложил лидверкс, там освещение просто шикарное, и твой код практически без изменений можно в нем запустить.

Кирпи4 27.08.2013 19:36

Ответ: AShadow и рукожопие
 
Антон, вегокс


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

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