forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Косяк с тенями (http://forum.boolean.name/showthread.php?t=12950)

Reizel 17.07.2010 23:08

Косяк с тенями
 
В общем, косяк завключается в следующем:
В игре создаются персы, и раскидываются по обширной территории. НО, при их создании, косячат тени - они появляются в произвольном месте карты(обычно недалеко от игрока), и не исчезают, пока их Cast'ер не появится в зоне видимости камеры. Это косяк ксорса, или я что то не так делаю? При необходимости могу приложить скрин

.Squid 18.07.2010 01:23

Ответ: Косяк с тенями
 
Лучше код показывать (чтобы воспроизвести можно было), а не скрин.

tjslash 19.08.2010 07:17

Ответ: Косяк с тенями
 
Проблема заключается в следующем:
При загрузке модели через xLoadAnimMesh ищу чилды, прописываю им xEntityReceiveShadows и xEntityCastShadows, всему мешу физмодель xEntityAddBoxShape. Тени отображаются, но, либо съехавши по оси, либо физ модель неправильно встает.



Менял центр объекта в 3dmax'е, изменял параметры xEntityAddBoxShape, изменений нет. Привожу части кода, отвечающие за создание террайна и модели.

Создание террайна:
Код:

Function createTerr()
        Local terrain = xCreateCube()
        Local texture=xLoadTexture( "media/images/textures/ground.bmp" )
        xScaleEntity terrain, 1000, 1, 1000
        xPositionEntity terrain, 0, 0, 0
        xEntityAddBoxShape terrain, 0 : xEntityType terrain, 2
        xScaleTexture texture, .001, .001 : xEntityTexture terrain,texture
        xEntityReceiveShadows terrain, light, True
          xEntityCastShadows terrain, light, False
        Return terrain
End Function

Создание модели:
Код:

Function createTank.Tank(mesh, AI, x# = 0, z# = 0)
        t.Tank = New Tank
        t\mesh = mesh : xEntityAddBoxShape t\mesh, 100, .3, .1, .3  : xPositionEntity t\mesh, x#, 5, z#: xEntityType t\mesh, 1: xScaleMesh t\mesh, 0.01, 0.01, 0.01 
        xEntityAlpha t\mesh, 1
        t\body = xFindChild(mesh, "body")
        t\head = xFindChild(mesh, "head")
        t\weapon = xFindChild(mesh, "weapon")
        t\AI = True
        t\pivot = xCreatePivot() : xPositionEntity t\pivot, Rnd(-t_freepivot, t_freepivot), t_y_pivot, Rnd(-t_freepivot, t_freepivot)
        t\state = PATRUL
        t\health = 100
        t\health_st = xCopyEntity(healthsprite)
        t\speed = 0
        xEntityShininess t\mesh, 1
              xEntityReceiveShadows t\body, light, True
        xEntityReceiveShadows t\head, light, True
        xEntityReceiveShadows t\weapon, light, True
        xEntityCastShadows t\body, light, True
        xEntityCastShadows t\head, light, True
              xEntityCastShadows t\weapon, light, True
        Return t
End Function

Ну и вдогонку еще проблемка. Тень от head и weapon не проецируется на body.

Помогите советом в какую сторону копать с первой и второй проблемой.

tjslash 19.08.2010 07:39

Ответ: Косяк с тенями
 
Все, ок. Разобрался. Уменьшил все таки высоту физмодели + изменил немного параметры xLightShadowEpsilons.


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

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