forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Xors3D (http://forum.boolean.name/showthread.php?t=6180)

pozitiffcat 08.09.2011 14:55

Ответ: Xors3D
 
Правильно я понимаю что это надо всего лишь перекомпилить DLL с отключением галочки в компиляторе, или же в коде тоже что-то надо править?

Ky3R_94 08.09.2011 17:05

Ответ: Xors3D
 
Спасибо всем за помощь! Самое главное для меня было узнать, правильно ли я всё сделал или нет. У меня есть компьютер помощнее, думаю на нём пойдёт.

Ну а если где-нибудь есть версия, которую поймёт мой Celeron, то всё вообще просто супер :) Если не сложно - выложите, ну а сложно - то обойдусь)

HolyDel 08.09.2011 22:38

Ответ: Xors3D
 
SSE2 есть даже на ARM процессорах, братцы.

.Squid 08.09.2011 22:51

Ответ: Xors3D
 
Это к чему?
К тому же, если мне память не изменяет, то у ARM'a набор SIMD-команд называется NEON. А SSE - это SIMD у х86 и производных.

ffinder 08.09.2011 23:29

Ответ: Xors3D
 
если быть точнее на старых девайсах есть VPF (похоже на SSE, но слабее), а на новых - NEON (полный аналог SSE)

HolyDel 08.09.2011 23:40

Ответ: Xors3D
 
Цитата:

Это к чему?
это призыв быть современнее.

Hurrit 19.09.2011 21:40

Ответ: Xors3D
 
Цитата:

Сообщение от pozitiffcat (Сообщение 200878)
ты в dev c++ либу не подключишь.

слюшай, зачэм врэш, да? савсэм плахой чиловек ти, я прикручивал эту либу и к дев с++. только забыл как

pozitiffcat 21.09.2011 21:54

Ответ: Xors3D
 
Создаю 30 штук башен в буфер (менеджер), 100 штук спрайтов с альфой, 30 штук пауков, все это невидимо, и просто располагается на карте когда это необходимо, ну чтоб не грузить с винта или не копировать меш.
Так вот, когда игра запустилась у меня она выдает 120 fps, через 5 сек, я ниче не делаю, начинает давать 40, ставлю башенку 20 fps - проходит минута и fps подымается до 200, что за чудеса кто знает? Ни каких процессов не завершается в игре, ниче не меняется, а с fps происходят такие чудеса. Может кто сталкивался в своих проектах

pozitiffcat 21.09.2011 21:57

Ответ: Xors3D
 
Цитата:

Сообщение от Hurrit (Сообщение 202735)
слюшай, зачэм врэш, да? савсэм плахой чиловек ти, я прикручивал эту либу и к дев с++. только забыл как

ага только сконвертировать надо сначала в *.a

pozitiffcat 21.09.2011 22:03

Ответ: Xors3D
 
Цитата:

Сообщение от pozitiffcat (Сообщение 203012)
Создаю 30 штук башен в буфер (менеджер), 100 штук спрайтов с альфой, 30 штук пауков, все это невидимо, и просто располагается на карте когда это необходимо, ну чтоб не грузить с винта или не копировать меш.
Так вот, когда игра запустилась у меня она выдает 120 fps, через 5 сек, я ниче не делаю, начинает давать 40, ставлю башенку 20 fps - проходит минута и fps подымается до 200, что за чудеса кто знает? Ни каких процессов не завершается в игре, ниче не меняется, а с fps происходят такие чудеса. Может кто сталкивался в своих проектах

извиняюсь косяк нашел

Код:

void G::MoveWater()                                                                                                        //анимация движения воды
{
        int brush = xGetEntityBrush(water->getModel());                                        //получение текстуры воды для дальнейших манипуляций
        int tex = xGetBrushTexture(brush,0);
        Vector3* waterdata = (Vector3*)G::water->data;                                        //получить данные воды
        waterdata->x+=0.00002;                                                                                                //установка новых значений положения воды
        waterdata->y+=0.00010f;
        xPositionTexture(tex,waterdata->x,waterdata->y);                                //установить позицию текстуры воды
}

xGetEntityBrush тормозит, он у меня каждый раз получал текстуру воды чтобы двигать, теперь это делается 1 раз при инициализации

moka 21.09.2011 22:10

Ответ: Xors3D
 
В Xors3D есть же шейдера, используй смещение текстурных координат в вершинном буфере, это будет в 100500 раз быстрее, чем получение текстуры, и её "позиционирование". Тем более проще намного.

pozitiffcat 21.09.2011 23:32

Ответ: Xors3D
 
Цитата:

Сообщение от MoKa (Сообщение 203016)
В Xors3D есть же шейдера, используй смещение текстурных координат в вершинном буфере, это будет в 100500 раз быстрее, чем получение текстуры, и её "позиционирование". Тем более проще намного.

MoKa можешь разжевать? Я в шейдерах ваще лузер.

moka 22.09.2011 00:11

Ответ: Xors3D
 
Взять например простейший шейдер с текстурингом.
Вершинная функция:
Код:

struct vi {
  float4 position : POSITION0;
  float2 texcoords : TEXCOORD0;
};

void vs( in vi IN, out pi OUT ) {
  OUT.position        = mul(IN.position,worldviewproj);
  OUT.texcoords    = IN.texcoords;
}

Тут как видишь есть texcoords, это текстурные координаты. Заведи две переменные, float'ы и передавай их в шейдер. Прибавляй их в вершинном шейдере. Таким образом в пиксельном выборка будет делаться уже из обработанных.
Это шустрее, и реалтайм, тупо передав 2 флоата, уже влияет на отрисовку. Никаких процессорных и на видео действий не делается вообще.

Mr_F_ 22.09.2011 00:36

Ответ: Xors3D
 
Цитата:

используй смещение текстурных координат в вершинном буфере, это будет в 100500 раз быстрее, чем получение текстуры, и её "позиционирование". Тем более проще намного.
не знаю как сделано позиционирование на ФФП. не факт что шейдером будет быстрее (скорее всего одинаково).
ну и вряд ли проще - учитывая что на позиционирование есть готовая команда без надобности грузить шейдер.

moka 22.09.2011 00:43

Ответ: Xors3D
 
Ну в современных играх, всё имеет шейдеры на себе, и с наличием их, это будет быстрее. Тем более будет либо по шейдерно, либо пообъектно. А тут же, у нас потекстурно. Получается что текстура на всех объектах будет ехать..

.Squid 22.09.2011 01:34

Ответ: Xors3D
 
xGetEntityBrush создает новый браш. Это в документации указано.

pozitiffcat 22.09.2011 08:23

Ответ: Xors3D
 
Цитата:

Сообщение от .Squid (Сообщение 203040)
xGetEntityBrush создает новый браш. Это в документации указано.

спасибо .Squid я просто не читал, но потом сам допер до этого

Reizel 22.09.2011 15:04

Ответ: Xors3D
 
Цитата:

Сообщение от .Squid (Сообщение 203040)
xGetEntityBrush создает новый браш.

Оо??

ПС а вобоще МоКа правильно говорит, водичку текстурь шейдером. На Ваших компах прирост может быть и незаметен, но на деле это не так. Сам прочуствовал на своем стареньком ноуте :). К примеру: меш , в котором 128*128 вершин, итого 16384 вершины => трианглы (127*127*2 = 32258 штук). Стд. FFP конвейер выдает 20-30 ФПС (без текстур, просто белый меш, освещаемый). ПОвесив на него шойдер (Vertex and Pixel) мне удалось добиться раскраски его попиксельно (т.е. уровень в пискельном шейдере разукрашивается налету), + освещение, и работает на 60 ФПС.


:facepalm: - прикольно сделали))):-D

.Squid 22.09.2011 15:16

Ответ: Xors3D
 
Цитата:

Сообщение от Павел (Сообщение 203077)
Оо??

http://blitzbasic.com/b3ddocs/comman...ush&ref=3d_cat

pozitiffcat 22.09.2011 23:12

Ответ: Xors3D
 
А почему у движка нет рекламы? Имхо если бы была реклама, то он покупался бы больше и развивался бы чаще, да еще может и разрабов прибавилось бы! Или все упирается в финансы?

Reizel 23.09.2011 15:06

Ответ: Xors3D
 
Цитата:

Сообщение от pozitiffcat (Сообщение 203151)
разрабов прибавилось бы!

Доставил! :-D

Вообще, те, кто реально занимается геймдевом - те знают про хорс. А для остальных он не нужен.

impersonalis 23.09.2011 15:27

Ответ: Xors3D
 
Цитата:

Сообщение от Павел (Сообщение 203207)
кто реально занимается геймдевом - те знают про хорс.

8) :cool:
:trollface:


pozitiffcat 25.09.2011 22:46

Ответ: Xors3D
 
Цитата:

Сообщение от Павел (Сообщение 203207)
Доставил! :-D

Вообще, те, кто реально занимается геймдевом - те знают про хорс. А для остальных он не нужен.

так херли я ни одной игры готовой на ксорсе не нашел

HolyDel 26.09.2011 11:46

Ответ: Xors3D
 
вот игра на хорсе, вполне уровня коммерческой игры:
http://www.gamedev.ru/projects/forum/?id=148322

moka 26.09.2011 14:00

Ответ: Xors3D
 
На iXors3d также есть на маркете несколько игр.

ffinder 26.09.2011 17:06

Ответ: Xors3D
 
Цитата:

Сообщение от HolyDel (Сообщение 203443)
вот игра на хорсе, вполне уровня коммерческой игры:
http://www.gamedev.ru/projects/forum/?id=148322

там еще даже не бета. у ивела очень крутой арт, но... до игры там еще очень и очень далеко.

moka 26.09.2011 18:14

Ответ: Xors3D
 
Играбельность присутствует. Явных проблем и "барьеров" не видится, чисто дело уже разработчика а не инструмента. Поэтому считать "успешным" Xors3d проектом можно смело, имхо.

EvilChaotic 26.09.2011 18:38

Ответ: Xors3D
 
Цитата:

Сообщение от ffinder (Сообщение 203446)
там еще даже не бета. у ивела очень крутой арт, но... до игры там еще очень и очень далеко.

Ты играл?
Там 90% функционала хомворлда, две фракции со своими фичами и 3 сюжетные миссии. ни бета? о_о

pozitiffcat 03.10.2011 22:25

Ответ: Xors3D
 
Не могу удалить созданный world
у меня есть 2 worlda удаляю ClearWorld, а активный другой, и программа валится при попытке renderWorlda. Если делаю deleteWorld, то при попытке выполнить эту команду программа сваливается... ЧЯДНТ.. мануал по ксорсу раз 20 перечитал!!! Понял только что ClearWorld не относится к какомуто определенному ворлду, как мне быть-то? А то при загрузке нового уровня у меня чистится и менюшка, приходиться заново загружать, тогда программа не сваливается с ошибкой

H@NON 03.10.2011 23:05

Ответ: Xors3D
 
наверное не там воткнул xSetActiveWorld. Попробуй сначало поменять активный мир, а уже затем удалить старый

.Squid 03.10.2011 23:15

Ответ: Xors3D
 
Мини-пример с падением после вызова xDeleteWorld не помешает.

pozitiffcat 04.10.2011 00:57

Ответ: Xors3D
 
Цитата:

Сообщение от .Squid (Сообщение 204401)
Мини-пример с падением после вызова xDeleteWorld не помешает.

Код:

// crash.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include "xors3d.h"
#pragma comment(lib,"xors3d.lib")

int _tmain(int argc, _TCHAR* argv[])
{
        xGraphics3D(800,600,0,0,0);
        int w1 = xCreateWorld();
        xSetActiveWorld(w1);
        xCreateCamera();
        xPositionEntity(xCreateCube(),0,0,10);

        int w2 = xCreateWorld();
        xSetActiveWorld(w2);
        xCreateCamera();
        xPositionEntity(xCreateSphere(),0,0,10);
        while(!xKeyDown(KEY_ESCAPE))
        {
                xCls();
                if(xKeyHit(KEY_1))
                {
                        xSetActiveWorld(w1);
                }
                if(xKeyHit(KEY_2))
                {
                        xSetActiveWorld(w2);
                }
                if(xKeyHit(KEY_3))
                {
                        xDeleteWorld(w1);
                }
                if(xKeyHit(KEY_4))
                {
                        xDeleteWorld(w2);
                }
                if(xKeyHit(KEY_5))
                {
                        xClearWorld();
                }
                xRenderWorld();

                xFlip();
        }
        return 0;
}

при активном первом мире, если нажать 4 - удалить второй мир, то падает! Хотя xClearWorld(); почистило только 1 ворлд, что есть правильно.. но все равно делет падает

.Squid 04.10.2011 17:27

Ответ: Xors3D
 
Исправил.

pozitiffcat 05.10.2011 11:56

Ответ: Xors3D
 
.Squid посмотри кое какую функцию в движке.
Если пикануть чайлд, какого либо объекта - то работа xCameraPick отличается от того если пикануть обычный объект. С чайлдом она как-то не точно работает.. пример не буду давать, просто посмотри пожалуйста, может там у тебя разные функции используются?

pozitiffcat 05.10.2011 20:05

Ответ: Xors3D
 
вы меня извините не нашел как сделать плавно возрастающий звук
Код:

if(rain_volume<1) rain_volume+=0.01f;

        xSoundVolume(snd_rain,rain_volume);

не робит

SBJoker 05.10.2011 20:24

Ответ: Xors3D
 
xChannelVolume пробуй с каналом полученным от xPlaySound

pozitiffcat 05.10.2011 20:45

Ответ: Xors3D
 
Цитата:

Сообщение от SBJoker (Сообщение 204747)
xChannelVolume пробуй с каналом полученным от xPlaySound

ага робит )) я видел в хелпе эти команды, но неправильно делал, щас разобрался

Nerd 07.10.2011 00:19

Ответ: Xors3D
 
У меня одного в последней ревизии xKeyDown не работает?

.Squid 07.10.2011 00:23

Ответ: Xors3D
 
Наверное.
Пример?

Nerd 07.10.2011 09:55

Ответ: Xors3D
 
Во всех стандартных примерах не работает.

pozitiffcat 07.10.2011 11:36

Ответ: Xors3D
 
xKeyDown работает, я ж игру как-то делаю...

4yBa4Ok 07.10.2011 13:29

Ответ: Xors3D
 
а мочму у мя не работать примерчик deffered на блитзе?

.Squid 07.10.2011 13:35

Ответ: Xors3D
 
Он не должен работать.

4yBa4Ok 07.10.2011 13:37

Ответ: Xors3D
 
Цитата:

Сообщение от .Squid (Сообщение 204976)
Он не должен работать.

Почему?:''(( :''(( :''(( :''((

moka 07.10.2011 14:36

Ответ: Xors3D
 
Deferred был сделан на скорую руку, и его собираются переделывать, поэтому отрубили.

.Squid 07.10.2011 17:22

Ответ: Xors3D
 
Если честно, я пока не собираюсь.

moka 07.10.2011 18:39

Ответ: Xors3D
 
*В будущем.
Где-то упоминал либо ты, либо Кнайт, о том что будет переписан Деферред рендер. Когда не известно, я не утверждал ближайшего времени, но таковой план есть, не так ли?

pozitiffcat 10.10.2011 23:58

Ответ: Xors3D
 
проблема с тенями!!!
Код:

......................... при ините приложения
        xSetAntiAliasType(0);
        xGraphics3D(wi,he,0,fu,1);
        xCreateDSS(1024, 1024);
        xSetTextureFiltering(TF_ANISOTROPICX16);
........................

//при ините левела (гдето в коде)
void shadows::initShadows(int light)
{
        xLightRange(light, 50);
        // shadows
        xInitShadows(1024, 0, 512);
        // set shadows params
        xLightEnableShadows(light, 1);
        xSetShadowParams(4, 0.85f, true, 300);
        xCameraEnableShadows(G::camera->getModel());
        xLightShadowEpsilons(light, 0.0001f, 0.16f);

//далее код отключения всем объектам отбрасывания тени
int cnt = G::sc_level->getCount();
        for(int i=0;i<cnt;i++)
        {
                Xors3Dext::Object3D* obj = G::sc_level->getByIndex(i);
                if(!obj) continue;
                xEntityCastShadows (obj->getModel(), light, false);
        }

}

размеры BB карты гдето 300х300х300 вот скрин

какого хрена у меня 45 fps упало после >60??? Тень отбрасывает только ОДНА башенка (спецом чотбы проверить fps), ЧЯДНТ???? Может есть шейдер для тени какой оптимизированный?

moka 11.10.2011 00:02

Ответ: Xors3D
 
Тебе отлично подойдут тени от Directional источника, parallel-split алгоритма.

pozitiffcat 11.10.2011 08:20

Ответ: Xors3D
 
Цитата:

Сообщение от MoKa (Сообщение 205394)
Тебе отлично подойдут тени от Directional источника, parallel-split алгоритма.

а где их взять и как ими пользоваться?

Sashka007 14.10.2011 20:26

Ответ: Xors3D
 
Вложений: 1
Ребят, объясните мне, что не так?

dsd 14.10.2011 20:31

Ответ: Xors3D
 
Походу ты пытаешься, что-то изменить у чего-нибудь, а этого там где ты думаешь это есть нету и ты портишь то, что лежит там и приложение перестает работать :)

Sashka007 14.10.2011 21:12

Ответ: Xors3D
 
Вложений: 1
Так со всеми примерами кроме simple, я ничего не изменял и не делал, просто открываю и тут такое.


И вот опять: другой пример и другой компилятор.

dsd 14.10.2011 21:16

Ответ: Xors3D
 
Код что ли выложи. Или на тнт в шоу экстрасенсов пиши.
У тебя походу примеры доисторические, счас вместо инт Handle, скачай новые

Reks888 14.10.2011 21:20

Ответ: Xors3D
 
Не в коде дело

Sashka007 14.10.2011 21:21

Ответ: Xors3D
 
Обычный пример из xors3d

/************************************************** *****************
* *
* Xors3D Engine. Bloom sample, (c) 2010 XorsTeam *
* www: http://xors3d.com *
* e-mail: [email protected] *
* *
************************************************** *****************/
#pragma comment(lib,"Xors3d.lib")
// include Xors3d Engine header
#include <xors3d.h>
#include <iostream>
#include <math.h>

// for camera mouse look
float CurveValue(float newvalue, float oldvalue, float increments)
{
if(increments > 1.0f) oldvalue = oldvalue - (oldvalue - newvalue) / increments;
if(increments <= 1.0f) oldvalue = newvalue;
return oldvalue;
}

// Function for sky box creating
int CreateSkyBox(const char * skyPath);

// program entry point
int APIENTRY WinMain(HINSTANCE instance, HINSTANCE prevInstance, LPSTR commandLine, int commandShow)
{
// set graphics mode
xGraphics3D(800, 600, 32, false, true);
xAppTitle("Bloom sample");

// create camera
int camera = xCreateCamera();
xCameraRange(camera, 0.9, 3000);
xPositionEntity(camera, 10, 0, -20);
xRotateEntity(camera, -10, 20, 0);

// create scene
int cube = xLoadMesh("media/meshes/teapot.b3d");
xPositionEntity(cube, 0, 0, 5);
xScaleMesh(cube, 0.3, 0.3, 0.3);
int texture1 = xLoadTexture("media/textures/tex_bloom.jpg");
xEntityTexture(cube, texture1);

// create light
int light = xCreateLight();

// create posteffect poly
int poly = xCreatePostEffectPoly(camera, 1);

// create posteffect textures
int texture = xCreateTexture(256, 256);
int texture2 = xCreateTexture(800, 600);

// load posteffect shader
int shader = xLoadFXFile("media/shaders/Bloom.fx");

xSetEntityEffect(poly, shader);
xSetEffectTechnique(poly, "Diffuse");
xSetEffectMatrixSemantic(poly, "MatWorldViewProj", WORLDVIEWPROJ);
xSetEffectTexture(poly, "tDiffuse", texture);
xSetEffectTexture(poly, "tEmissive", texture2);

// create skybox
int sky = CreateSkyBox("media/textures/skybox/");
xScaleEntity(sky, 1000, 500, 1000);
xPositionEntity(sky, 0, 200, 0);

// create cube
int cube2 = xCreateCube();
xPositionEntity(cube2, 0, 0, 30);
xScaleEntity(cube2, 5, 5, 5);

// params
bool enable = true;

// for mouse look
xMoveMouse(xGraphicsWidth() / 2, xGraphicsHeight() / 2);
float mousespeed = 0.5;
float camerasmoothness = 4.5;
float mxs = 0.0f;
float mys = 0.0f;
float camxa = 0.0f;
float camya = 0.0f;

// main program loop
while(!xKeyDown(KEY_ESCAPE))
{
// camera control
if(xKeyDown(KEY_W)) xMoveEntity(camera, 0, 0, 1);
if(xKeyDown(KEY_S)) xMoveEntity(camera, 0, 0, -1);
if(xKeyDown(KEY_A)) xMoveEntity(camera, -1, 0, 0);
if(xKeyDown(KEY_D)) xMoveEntity(camera, 1, 0, 0);
mxs = CurveValue(xMouseXSpeed() * mousespeed, mxs, camerasmoothness);
mys = CurveValue(xMouseYSpeed() * mousespeed, mys, camerasmoothness);
camxa = fmodf(camxa - mxs, 360.0f);
camya = camya + mys;
if(camya < -89.0f) camya = -89.0f;
if(camya > 89.0f) camya = 89.0f;
xMoveMouse(xGraphicsWidth() / 2, xGraphicsHeight() / 2);
xRotateEntity(camera, camya, camxa, 0.0);

// turn teapot
xTurnEntity(cube, 0, 1, 0);

// switch bloom
if(xKeyHit(KEY_SPACE)) enable = !enable;

// render scene
xRenderWorld();

// bloom
if(enable == true)
{
xStretchBackBuffer(texture, 0, 0, 256, 256, 0);
xStretchBackBuffer(texture2, 0, 0, 800, 600, 0);
xSetEffectTechnique(poly, "Diffuse");
xRenderPostEffect(poly);
xStretchBackBuffer(texture, 0, 0, 256, 256, 0);
xSetEffectTechnique(poly, "DiffuseH");
xRenderPostEffect(poly);
xStretchBackBuffer(texture, 0, 0, 256, 256, 0);
xSetEffectTechnique(poly, "DiffuseV");
xRenderPostEffect(poly);
}

// draw texts
char buffer[128];
sprintf(buffer, "FPS: %i", xGetFPS());
xText(40, 30, buffer);
xText(40, 50, "Space - enable\\disable bloom");

// draw scene
xFlip();
}
return 0;
}

int CreateSkyBox(const char * skyPath)
{
int skybox = xCreateMesh();
// Left
char texturePath[256];
sprintf(texturePath, "%sleft.jpg", skyPath);
int texture = xLoadTexture(texturePath, 49);
int brush = xCreateBrush();
xBrushTexture(brush, texture);
int surface = xCreateSurface(skybox, brush);
int v0 = xAddVertex(surface, -1.0, 1.0, -1.0, 0.0, 0.0);
int v1 = xAddVertex(surface, -1.0, 1.0, 1.0, 1.0, 0.0);
int v2 = xAddVertex(surface, -1.0, -1.0, -1.0, 0.0, 1.0);
int v3 = xAddVertex(surface, -1.0, -1.0, 1.0, 1.0, 1.0);
xAddTriangle(surface, v2, v1, v0);
xAddTriangle(surface, v1, v2, v3);
// Front
sprintf(texturePath, "%sfront.jpg", skyPath);
texture = xLoadTexture(texturePath, 49);
brush = xCreateBrush();
xBrushTexture(brush, texture);
surface = xCreateSurface(skybox, brush);
v0 = xAddVertex(surface, -1.0, 1.0, 1.0, 0.0, 0.0);
v1 = xAddVertex(surface, 1.0, 1.0, 1.0, 1.0, 0.0);
v2 = xAddVertex(surface, -1.0, -1.0, 1.0, 0.0, 1.0);
v3 = xAddVertex(surface, 1.0, -1.0, 1.0, 1.0, 1.0);
xAddTriangle(surface, v2, v1, v0);
xAddTriangle(surface, v1, v2, v3);
// Right
sprintf(texturePath, "%sright.jpg", skyPath);
texture = xLoadTexture(texturePath, 49);
brush = xCreateBrush();
xBrushTexture(brush, texture);
surface = xCreateSurface(skybox, brush);
v0 = xAddVertex(surface, 1.0, 1.0, 1.0, 0.0, 0.0);
v1 = xAddVertex(surface, 1.0, 1.0, -1.0, 1.0, 0.0);
v2 = xAddVertex(surface, 1.0, -1.0, 1.0, 0.0, 1.0);
v3 = xAddVertex(surface, 1.0, -1.0, -1.0, 1.0, 1.0);
xAddTriangle(surface, v2, v1, v0);
xAddTriangle(surface, v1, v2, v3);
// Back
sprintf(texturePath, "%sback.jpg", skyPath);
texture = xLoadTexture(texturePath, 49);
brush = xCreateBrush();
xBrushTexture(brush, texture);
surface = xCreateSurface(skybox, brush);
v0 = xAddVertex(surface, 1.0, 1.0, -1.0, 0.0, 0.0);
v1 = xAddVertex(surface, -1.0, 1.0, -1.0, 1.0, 0.0);
v2 = xAddVertex(surface, 1.0, -1.0, -1.0, 0.0, 1.0);
v3 = xAddVertex(surface, -1.0, -1.0, -1.0, 1.0, 1.0);
xAddTriangle(surface, v2, v1, v0);
xAddTriangle(surface, v1, v2, v3);
// Top
sprintf(texturePath, "%stop.jpg", skyPath);
texture = xLoadTexture(texturePath, 49);
brush = xCreateBrush();
xBrushTexture(brush, texture);
surface = xCreateSurface(skybox, brush);
v0 = xAddVertex(surface, -1.0, 1.0, 1.0, 0.0, 0.0);
v1 = xAddVertex(surface, -1.0, 1.0, -1.0, 1.0, 0.0);
v2 = xAddVertex(surface, 1.0, 1.0, 1.0, 0.0, 1.0);
v3 = xAddVertex(surface, 1.0, 1.0, -1.0, 1.0, 1.0);
xAddTriangle(surface, v2, v1, v0);
xAddTriangle(surface, v1, v2, v3);
// set FX flags
xEntityFX(skybox, 1);
xFlipMesh(skybox);
xUpdateNormals(skybox);
// return skybox handle
return skybox;
}

dsd 14.10.2011 21:27

Ответ: Xors3D
 
Цитата:

Сообщение от pozitiffcat (Сообщение 200878)
ты в dev c++ либу не подключишь. Используй Microsoft Visual c++ express она бесплатна
Код:

#include "stdafx.h"
#include "TestProject.h"
#include <xors3d.h>
#include <iostream>

#pragma comment(lib,"xors3d.lib)

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
        char msgBuffer[129];
        xGraphics3D(800, 600, 32, false, true);
        int camera = xCreateCamera();
        int light = xCreateLight();
        int cube = xCreateCube();
        xPositionEntity(cube, 0.0, 0.0, 10.0);
        while(!(xKeyHit(KEY_ESCAPE) || xWinMessage("WM_CLOSE")))
        {
                xTurnEntity(cube, 0.1, 0.1, 0.1);
                xRenderWorld();
                sprintf(msgBuffer, "Hello 3D World!");
                xText(10, 10, msgBuffer);
                sprintf(msgBuffer, "FPS: %i", xGetFPS());
                xText(10, 30, msgBuffer);
                xFlip();
        }
        return 0;
}

это не готовый код а пример!!!!!!
все файлы ложить рядом с созданными в проекте
ЗЫ. выдрал из хелпа.

попробуй этот код запустить не выйдет, значит ты не смог настроить хорс

Sashka007 14.10.2011 23:52

Ответ: Xors3D
 
Вложений: 1
Ничего не изменилось,я все по либы и хеадеры в с игрой и дллки тоже, в чем проблема, понять не могу.

dsd 15.10.2011 00:12

Ответ: Xors3D
 
Сматри, у меня запускается :tongue:

Sashka007 15.10.2011 00:13

Ответ: Xors3D
 
то все исправил, но теперь вот такая ошибка:

LINK : fatal error LNK1561: точка входа должна быть определена

moka 15.10.2011 02:20

Ответ: Xors3D
 
Цитата:

Сообщение от Sashka007 (Сообщение 205905)
то все исправил

Как исправил?

Есть функция xLog. Если это проблема ксорса, то создастся файл рядом с ехе'шкой, читай инфу от туда.
Если файла нет, значит твоя проблема.

Убедись что все нужные DLL лежат рядом с EXE, в Release и Debug папках в bin.
Установи DirectX поновее.

Sashka007 15.10.2011 11:42

Ответ: Xors3D
 
Цитата:

Сообщение от MoKa (Сообщение 205924)
Как исправил?

Есть функция xLog. Если это проблема ксорса, то создастся файл рядом с ехе'шкой, читай инфу от туда.
Если файла нет, значит твоя проблема.

Убедись что все нужные DLL лежат рядом с EXE, в Release и Debug папках в bin.
Установи DirectX поновее.


Скопировал папку media в папку с .exe и ошибки пропали, это моя невнимательность, все работает, только вот почему то жалуется на функцию timeGetTime(), добавляю Mmsystem.h, все равно говорит, что ненаходит.

wolfhound512 15.10.2011 13:32

Ответ: Xors3D
 
http://msdn.microsoft.com/en-us/libr...29(VS.85).aspx

Header Mmsystem.h (include Windows.h)
Library Winmm.lib

Winmm.lib добавил в список библиотек?

Sashka007 15.10.2011 14:50

Ответ: Xors3D
 
Добавил Winmm.lib и все нормально стало.


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

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