Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Закрытая тема
 
Опции темы
Старый 20.07.2010, 12:27   #211
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Exotic Engine

В максе:
Нажмите на изображение для увеличения
Название: MAXAO.jpg
Просмотров: 1395
Размер:	120.6 Кб
ID:	10778
У тебя:
Нажмите на изображение для увеличения
Название: AO.jpg
Просмотров: 1343
Размер:	49.7 Кб
ID:	10779
Угол не может вот так поглотить весь свет, только если он не обложен материалом являющимся абсолютно черным телом, которого в природе не существует (модели в расчет не берем, тут близко не тот случай).
(Offline)
 
Сообщение было полезно следующим пользователям:
Mr_F_ (20.07.2010)
Старый 20.07.2010, 12:33   #212
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Exotic Engine

Вот совместил рисунки и применил автоконтраст для выравнивания тона.
Разница очевидна.
__________________
(Offline)
 
Эти 3 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
is.SarCasm (20.07.2010), Mr_F_ (20.07.2010), pax (20.07.2010)
Старый 20.07.2010, 12:50   #213
Igor'
ПроЭктировщик
 
Аватар для Igor'
 
Регистрация: 15.10.2009
Сообщений: 190
Написано 47 полезных сообщений
(для 142 пользователей)
Ответ: Exotic Engine

Сообщение от Knightmare Посмотреть сообщение
В максе:
Вложение 10778
У тебя:
Вложение 10779
Угол не может вот так поглотить весь свет, только если он не обложен материалом являющимся абсолютно черным телом, которого в природе не существует (модели в расчет не берем, тут близко не тот случай).
То чно всё серое - не результат SSAO, а просто выставленый амбиент!
(Offline)
 
Старый 20.07.2010, 12:53   #214
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Exotic Engine

Сообщение от Igor' Посмотреть сообщение
То чно всё серое - не результат SSAO, а просто выставленый амбиент!
Ололошеньки. Я тибя умоляю, почитай ты теорию, эта фраза невероятно феерична.
(Offline)
 
Старый 20.07.2010, 13:04   #215
Igor'
ПроЭктировщик
 
Аватар для Igor'
 
Регистрация: 15.10.2009
Сообщений: 190
Написано 47 полезных сообщений
(для 142 пользователей)
Ответ: Exotic Engine

Сообщение от Knightmare Посмотреть сообщение
Ололошеньки. Я тибя умоляю, почитай ты теорию, эта фраза невероятно феерична.
Знаеш есть такая штука, Ambient Pass завётся где отрисовывается сцена c домножением на коефициен Ambient Light, почитай теорию..

Вот с амбиентом 1.0,1.0,1.0
Миниатюры
Нажмите на изображение для увеличения
Название: SSAO1.jpg
Просмотров: 820
Размер:	52.0 Кб
ID:	10781  
(Offline)
 
Старый 20.07.2010, 13:07   #216
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Exotic Engine

Тяжелый случай.
почитай теорию..
Knightmare, в отличие от тебя, был хорошим мальчиком и внимательно слушал преподавателей физики и математики в школе и универе. Поэтому он знает и что такое AO, и что такое SSAO, и как их реализовать, и почему твой скрин говно.

Последний раз редактировалось SBJoker, 20.07.2010 в 17:30. Причина: удалено оскорбление
(Offline)
 
Старый 20.07.2010, 18:30   #217
Igor'
ПроЭктировщик
 
Аватар для Igor'
 
Регистрация: 15.10.2009
Сообщений: 190
Написано 47 полезных сообщений
(для 142 пользователей)
Ответ: Exotic Engine

Вот к водичке добавил туман, ещё хочу каустику =)
Миниатюры
Нажмите на изображение для увеличения
Название: Water2.jpg
Просмотров: 853
Размер:	237.8 Кб
ID:	10782  Нажмите на изображение для увеличения
Название: Water3.jpg
Просмотров: 827
Размер:	161.4 Кб
ID:	10783  
(Offline)
 
Эти 10 пользователя(ей) сказали Спасибо Igor' за это полезное сообщение:
ABTOMAT (20.07.2010), Android (20.07.2010), Arton (20.07.2010), Fatalix3d (20.07.2010), impersonalis (20.07.2010), is.SarCasm (20.07.2010), Mr_F_ (21.07.2010), Nuprahtor (20.07.2010), pax (20.07.2010), Randomize (20.07.2010)
Старый 20.07.2010, 21:54   #218
Fatalix3d
Разработчик
 
Аватар для Fatalix3d
 
Регистрация: 28.12.2008
Адрес: Алматы
Сообщений: 486
Написано 252 полезных сообщений
(для 1,160 пользователей)
Ответ: Exotic Engine

Водичка отличная, а насчет SSAO вроде везде в играх он как у Игоря? С максом имхо сравнивать не правильно вроде там чистый АО а тут SSAO?
(Offline)
 
Старый 21.07.2010, 01:18   #219
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Exotic Engine

вроде везде в играх он как у Игоря?
в крайзисе лучше, ясен пень же
(Offline)
 
Старый 21.07.2010, 09:23   #220
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: Exotic Engine

Сообщение от Igor' Посмотреть сообщение
То чно всё серое - не результат SSAO, а просто выставленый амбиент!
А разве амбиент не учитываеться во время расчета расчета освещения ?
__________________
Жизнь как говориться игра- делать игры моя профессия(с)

Программирование, это религия! Её нужно исповедовать.
(Offline)
 
Старый 21.07.2010, 09:24   #221
Igor'
ПроЭктировщик
 
Аватар для Igor'
 
Регистрация: 15.10.2009
Сообщений: 190
Написано 47 полезных сообщений
(для 142 пользователей)
Ответ: Exotic Engine

Сообщение от FDsagizi Посмотреть сообщение
А разве амбиент не учитываеться во время расчета расчета освещения ?
Амбиент учитывается в Ambient Pass.
(Offline)
 
Старый 24.07.2010, 13:30   #222
Igor'
ПроЭктировщик
 
Аватар для Igor'
 
Регистрация: 15.10.2009
Сообщений: 190
Написано 47 полезных сообщений
(для 142 пользователей)
Ответ: Exotic Engine

Вот сделал эмуляцию AlphaToCoverage c помощью ноиза, для AlphaToCoverage нужен мультисеймплинг - а его увы заюзать нет возможности...

Ну и также добавил секторы и порталы в движок и пару новых функций в класс движка:

		// Find sectors for point
		bool worldFindSectors( Vector<int>& sectorList , const vec3_t& point );

		// Find sectors for sphere
		bool worldFindSectors( Vector<int>& sectorList , const vec3_t& point , float radius );

		// Find nearest sector for point
		int worldFindNearestSector( const vec3_t& point );

		// Find nearest sector for sphere
		int worldFindNearestSector( const vec3_t& point , float radius );
Миниатюры
Нажмите на изображение для увеличения
Название: WaterAndAlphaToCoverage.jpg
Просмотров: 879
Размер:	333.1 Кб
ID:	10805  
(Offline)
 
Старый 24.07.2010, 21:06   #223
ARA
ТЫ ЧООО?
 
Аватар для ARA
 
Регистрация: 26.02.2007
Сообщений: 3,369
Написано 2,020 полезных сообщений
(для 7,192 пользователей)
Ответ: Exotic Engine

У меня такой же баг с деревьями был в GTA4 нойзовый. Там ещё тени нойзовые были позорные
__________________
Вертекс в глаз или в пиксель раз?
(Offline)
 
Старый 25.07.2010, 14:01   #224
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Exotic Engine

слышал что патчи намного улучшают тени в гта4
(Offline)
 
Старый 30.07.2010, 09:51   #225
Igor'
ПроЭктировщик
 
Аватар для Igor'
 
Регистрация: 15.10.2009
Сообщений: 190
Написано 47 полезных сообщений
(для 142 пользователей)
Ответ: Exotic Engine

Вот сеть наконецто с физикой доделал, сеть через UDP но с гарантированой доставкой пакетов, работает просто:

#include "..\sdk\inc\engine.h"
#include "..\sdk\inc\font\font.h"
#include "..\sdk\inc\console\console.h"
#include "..\sdk\inc\movie\clip.h"
#include "..\sdk\inc\texture\texture.h"
#include "..\sdk\inc\sound\sound.h"
#include "..\sdk\inc\object\object.h"
#include "..\sdk\inc\camera\camera.h"
#include "..\sdk\inc\model\model.h"
#include "..\sdk\inc\player\player.h"
#include "..\sdk\inc\light\light.h"
#include "..\sdk\inc\light\directionallight.h"
#include "..\sdk\inc\light\spotlight.h"
#include "..\sdk\inc\light\omnilight.h"
#include "..\sdk\inc\light\pointlight.h"
#include "..\sdk\inc\terrain\terrain.h"
#include "..\sdk\inc\water\water.h"
#include "..\sdk\inc\cl\compute.h"
#include "..\sdk\inc\material\material.h"
#include "..\sdk\inc\spatial\spatial.h"
#include "..\sdk\inc\game\game.h"
#include "..\sdk\inc\physic\physic.h"
#include "..\sdk\inc\collision\collision.h"
#include "..\sdk\inc\rigidbody\rigidbody.h"
#include "..\sdk\inc\log.h"
#include "..\sdk\inc\network\network.h"

using namespace ex;



void testCmd( const String& ){
}



static Cmd_t* test = NULL;
static PlayerSpectator* player = NULL;
static Engine* engine = NULL;
static Network* network = NULL;
static Physic* physic = NULL;
static SpotLight* sun = NULL;
static ObjectModel* sky = 0;
static Font* font = 0;


void ServerChat( int msg ) {
	if( msg == NMSG_PACKET ) {
		SocketPacket packet;
		if( ServerSocket::read(packet) ) 
			engine->print("message form client %i: %s\n",packet.peerId,(char*)packet.data);
		else
			return;

		for( int i = 0; i < ServerSocket::getPeerCount(); i++ ) {
			if( i == packet.peerId ) continue;
			SocketPacket opacket;
			opacket.length = packet.length;
			opacket.data = packet.data;
			ServerSocket::write(ServerSocket::getPeer(i),opacket);
		}
	}
}

void ClientChat( int msg ) {
	if( msg == NMSG_PACKET ) {
		SocketPacket packet;
		if( !ClientSocket::read(packet) ) return;
		engine->print("message: %s\n",(char*)packet.data);
	}
}

void Say( const String& text ) {
	SocketPacket packet;
	packet.length = text.size() + 1;
	packet.data = (byte*)text.c_str();
	ClientSocket::write(packet);
}

bool init(){
	engine = Engine::get();
	physic = Physic::get();
	network = Network::get();


	font = new Font("arial.ttf",16);
	
	sun = new SpotLight();
	sun->setIntensity(1.0f);
	sun->setColor(float3(1.0f,1.0f,1.0f));
	sun->setShadows(true);
	sun->setRadius(200.0f);
	engine->worldAddLight(sun);



	test = Console::get()->createCmd("test",testCmd,Cmd_t::CHEAT);
	Console::get()->createCmd("say",Say);


	engine->worldAmbient(vec3_t(0.6f,0.6f,0.6f));
	engine->worldFogRange(vec2_t(0.0f,120.0f));



	ObjectModel* box = ObjectModel::createBox();
	box->setOrigin( vec3_t(0,20,0) );
	engine->worldAddObject(box);
    RigidBody* body = new RigidBody(box,CollisionShape::createModelBox(box),20.0f);
	physic->addObject(body);

	float x_offset = 0,z_offset = -5.0f;
	for( int z = 0; z < 10; z++ ) {
		x_offset = -5.0f;
		for( int x = 0; x < 10; x++ ) {
			ObjectModel* box = ObjectModel::createBox();
			box->setOrigin(vec3_t(x_offset,-2,z_offset));
	        engine->worldAddObject(box);
            Collider* collider = new Collider(box,CollisionShape::createModelBox(box),0);
	        physic->addObject(collider);
			x_offset += 1.2f;
		}
		z_offset += 1.2f;
	}

	player = new PlayerSpectator();
	engine->worldAddPlayer(player);
	engine->worldSetPlayer(player);
	player->getView()->setFar(2048.0f);

	Collider* collider = new Collider(player->getView(),CollisionShape::createSphere(1.0f),1);
	collider->setObject( player->getView() );
	physic->addObject(collider);

	network->setServerCallback(ServerChat);
	network->setClientCallback(ClientChat);

	return true;
}

bool frame( float delta ){
	if( engine->getKey( KC_ESCAPE ) ) return false;	


	if( engine->getKey( KC_F3 ) ){
		engine->worldFog(true);
	}

	if( engine->getKey( KC_F4 ) ){
		engine->worldFog(false);
	}

	if( engine->getKey( KC_SPACE ) ){
		sun->setOrient( player->getView()->getOrient() );
		sun->setOrigin( player->getView()->getOrigin() );
	}

	return true;
}

bool guiFrame( float delta ) {
	font->enable(engine->getWindowWidth(),engine->getWindowHeight());
	font->printf(2,2,0,"Visible sectors: %i\n",engine->worldGetVisibleSectors());
	font->disable();
	return true;
}

#ifdef EX_WIN32
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) {
	int argc = 1;
	char *argv[256];
	argv[0] = "none";
	while(*lpCmdLine && argc < 256) {
		while(*lpCmdLine && (*lpCmdLine <= ' ' || *lpCmdLine == '"')) lpCmdLine++;
		if(*lpCmdLine) {
			if(*lpCmdLine == '"') lpCmdLine++;
			argv[argc++] = lpCmdLine;
			while(*lpCmdLine && *lpCmdLine > ' ' && *lpCmdLine != '"') lpCmdLine++;
			if(*lpCmdLine) *(lpCmdLine++) = '\0';
		}
	}
#else
int main( int argc , char** argv ) {
#endif

	Engine* engine = Engine::create();
	engine->main(init,NULL,frame,guiFrame);
	Engine::destroy();

	return 0;
}
Cоздание сервера и приконекчивание к нему осуществляется в консоли c помощью комманд:

server_create <port>
server_destroy
client_connect <address:port>
client_disconnect
(Offline)
 
Закрытая тема


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com