Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с примитивом 
:(
    Опции темы
Salatovec
Дата 7.11.2008, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Помогите люди добрые, значитс есть такой код:
Код

#include < GL\glut.h > 
#include < GL\gl.h >
#include < GL\glaux.h >
#include < windows.h >

static HGLRC hRC;
static HDC hDC;

bool  keys[256];
      
double angX=0.0,angY=0.0,angZ=0.0;

void Display( void )
{ 
Case1:
        
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glLoadIdentity();

        glRotatef(angX,1.0f,0.0f,0.0f);
        glRotatef(angY,0.0f,1.0f,0.0f);
        
       glBegin( GL_QUADS );
        glColor3f(0.0f,1.0f,0.0f);              
        glVertex3f( 0.2f, 0.2f,-0.2f);         
        glVertex3f(-0.2f, 0.2f,-0.2f);          
        glVertex3f(-0.2f, 0.2f, 0.2f);          
        glVertex3f( 0.2f, 0.2f, 0.2f);         

        glColor3f(1.0f,0.5f,0.0f);             
        glVertex3f( 0.2f,-0.2f, 0.2f);        
        glVertex3f(-0.2f,-0.2f, 0.2f);          
        glVertex3f(-0.2f,-0.2f,-0.2f);         
        glVertex3f( 0.2f,-0.2f,-0.2f);         

        glColor3f(1.0f,0.0f,0.0f);            
        glVertex3f( 0.2f, 0.2f, 0.2f);          
        glVertex3f(-0.2f, 0.2f, 0.2f);          
        glVertex3f(-0.2f,-0.2f, 0.2f);          
        glVertex3f( 0.2f,-0.2f, 0.2f);          

        glColor3f(1.0f,1.0f,0.0f);              
        glVertex3f( 0.2f,-0.2f,-0.2f);     
        glVertex3f(-0.2f,-0.2f,-0.2f);          
        glVertex3f(-0.2f, 0.2f,-0.2f);          
        glVertex3f( 0.2f, 0.2f,-0.2f);          

        glColor3f(0.0f,0.0f,1.0f);            
        glVertex3f(-0.2f, 0.2f, 0.2f);       
        glVertex3f(-0.2f, 0.2f,-0.2f);          
        glVertex3f(-0.2f,-0.2f,-0.2f);          
        glVertex3f(-0.2f,-0.2f, 0.2f);          

        glColor3f(1.0f,0.0f,1.0f);           
        glVertex3f( 0.2f, 0.2f,-0.2f);        
        glVertex3f( 0.2f, 0.2f, 0.2f);          
        glVertex3f( 0.2f,-0.2f, 0.2f);          
        glVertex3f( 0.2f,-0.2f,-0.2f);
       glEnd();

        glutSwapBuffers();
        Sleep(20);
        angX+=1.0;
        angY+=0.2;
        goto Case1;
} 

void main( int argc , char **argv )
{ 
    glutInit( &argc , argv ); 
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); 
    glutInitWindowSize( 800 , 600 ); 
    glutInitWindowPosition( 100 , 100 ); 
    glutCreateWindow( "Êóá" ); 
    glClearColor( 1 , 1 , 1 , 1 ); 
    glutDisplayFunc( Display ); 
    glutMainLoop();
}

Здесь разноцветный кубик крутится вокруг осей Х и Y. и Все бы хорошо, но некоторые грани не видны, как я понимаю из-за того, что координаты их совпадают с другими гранями и эти грань налезает на грань, вообще кубик похож не на кубик, а на кубик с несколькими прозрачными гранями, которых якобы и в помине нет. Помогите люди пожалуйса, второй час голову ломаю.
PM MAIL   Вверх
Baton2007
Дата 7.11.2008, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



А зачем использовать две функции   glRotatef();
Если я не ошибаюсь одна функция справится с поворотом по всем 3 осям!
И еще избавься от goto и поставь функции таймера!

Это сообщение отредактировал(а) Baton2007 - 7.11.2008, 09:43
PM MAIL   Вверх
Salatovec
Дата 7.11.2008, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



2 функции использую, чтобы скорости поворота были разные. Так а по моей проблеме ответ будет?)
PM MAIL   Вверх
Salatovec
Дата 7.11.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Неужели никто не поможет, очень хочу понять решение?(
PM MAIL   Вверх
Salatovec
Дата 7.11.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



 smile 
PM MAIL   Вверх
Salatovec
Дата 7.11.2008, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Да какие же вы после этого профессионалы (
PM MAIL   Вверх
Salatovec
Дата 9.11.2008, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



 smile 
PM MAIL   Вверх
Rickert
Дата 9.11.2008, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Смотрим что такое gluLookAt() - 0
Что значит "Case 1: ", в начале функции "Display"? - 1
Учимся инициализировать не через glut - чтобы понять как работать с OpenGL, а не пытаться построить камаз, научившись резьбе по дереву.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Salatovec
Дата 9.11.2008, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Ура откликнулись добрые люди, спасибо) Дак учиться то я и хочу, просто уроки, которые я нашел в инете чето как то туманно учат, я во многое не втыкаю(
А case - я сделал как метку, чтобы все время угол поворота прибавлялся и функция заного начиналась. Чтобы кубик крутился короче =\
PM MAIL   Вверх
Rickert
Дата 10.11.2008, 04:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Будут вам уроки smile 
0) Забываем про метки - это плохой стиль программирования. Выбросьте книгу, которая вам о них поведала. Возьмите книгу Дейтлов или Страуструпа.
1) Идём в ya.ru -> "Уроки Nehe" - учимся инициализировать OpenGL и делать какой-то минимум действий.
2) Если понадобиться - создайте тему что-то типа "Вопросы человека, учащего OpenGL" - и там задавайте появляющиеся вопросы. Думаю, если их накопится много, то модератор даже закрепит эту тему. Я обещая во всём помогать вам и освещать непонятные вопросы, попутно осыпая ссылками smile 



--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Salatovec
Дата 10.11.2008, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Rickert, Я как раз и учился по урокам нехе, вот там 1 урок, инициализация в виндовс он уже непонятен) Куча, куча - ну просто куча кода, а мне то нужно лишь чтобы окошко создавалось и в нем кубик пока нарисовать, чтобы вертелся и правильно отображался. Про создание кубика и вообще работу с рисованием полигонов, линий и т.д. я понял, а от непосредственно инициализацию опенгл нет( Я нашел вот такие уроки http://www.firststeps.ru/mfc/opengl/r.php?1 , как считаете, подойдут? Или все таки лучше в нехе втыкать?


Это сообщение отредактировал(а) Salatovec - 10.11.2008, 17:39
PM MAIL   Вверх
Salatovec
Дата 10.11.2008, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Если не трудно, сделай мне такую, а я попробую в ней разобраться и спрошу, что непонятно. Если не трудно, пожалуйста.
PM MAIL   Вверх
Rickert
Дата 11.11.2008, 04:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Нет, друг мой, извините, делать за вас никто ничего не будет. Я вам повторяю - "Уроки NeHе" - первый из них посвящён созданию окна и инициализации OpenGL.
Надо инициализировать именно так как там указано, а не через коротенькие, готовые функции glut'а, неудивительно что вы не понимаете как всё это работает: просто пытаетесь сделать работу быстрее.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Salatovec
Дата 11.11.2008, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Просто инициализация и вправду уж больно жесткая =\ Ладно, возникнут вопросы - напишу)
PM MAIL   Вверх
Rickert
Дата 11.11.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Salatovec, это вам кажется. Поверьте: дальше - больше smile 


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Salatovec
Дата 11.11.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Rickert, Вот вопросы возникли) Рисовать полигонами коробочки, сферки, цилиндры - это все конечно хорошо, а вот если более сложная модель? Я хорошо работаю в 3ds maxe, но не знаю как из макса экспортировать в с++. И вот 2 вопроса - собственно как экспортировать и чтоже все таки лучше - рисовать с++ или максом?
PM MAIL   Вверх
Rickert
Дата 12.11.2008, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Salatovec, Конечно же все ресурсы создаются в отдельных проргаммах, а потом импортируются в свой проект. Как это делать? Есть разные способы.
Допустим вам надо загрузить модель из Макса в ваш проект: сохраняем её (или экспортируем) в Obj формат (wavefront OBJ), затем в своём проекте пишем функцию по загрузке этого файла и рисуем, все дела.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Salatovec
Дата 12.11.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Rickert, Спасибо тебе огромнейшее, мне бы только функцию узнать "по загрузке этого файла"  smile 
PM MAIL   Вверх
Rickert
Дата 13.11.2008, 04:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Salatovec, сначала сделай OBJ файл, потом открой его в блокноте и сам всё поймёшь, как его надо читать.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Salatovec
Дата 13.11.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Честно открыл и честно не понял =( smile 
PM MAIL   Вверх
Rickert
Дата 14.11.2008, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Тогда иди на wotsit.org и в поиске вводи "OBJ", среди результатов ищи OBJ wavefront - это и будет описание файла.
Повторяю: никто за тебя ничего не напишет. Понять - помогу, но ты сам должен учиться это делать.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Salatovec
Дата 14.11.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Да я и не прошу за меня всё делать -_- но понять код длинной с байкало амурскую магистраль чето как то не але =\ не могли в пару строк чтоль придумать (
PM MAIL   Вверх
Rickert
Дата 15.11.2008, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Salatovec, Иркутянин чтоли?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Salatovec
Дата 15.11.2008, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Нет, Москвич) если ты об этом
PM MAIL   Вверх
TDM
Дата 15.11.2008, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет



Salatovec, 
Если некоторые грани не видны то наверно неправильные координаты вершин.
PM MAIL ICQ   Вверх
Salatovec
Дата 16.11.2008, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Цитата(TDM @ 15.11.2008,  21:57)
Salatovec, 
Если некоторые грани не видны то наверно неправильные координаты вершин.

Нет координаты были верны, дело было в инициализации окна опенджл) но спасибо за ответ)
PM MAIL   Вверх
Salatovec
Дата 16.11.2008, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Так, Rickert, вот такой вопрос, вот отрывок кода:

Код

glLoadIdentity();
glColor3f(0.0f,0.0f,1.0f);
glTranslatef(0.0f,0.0f,z);
glRotatef(xrot,0.0f,1.0f,0.0f);
glRotatef(yrot,1.0f,0.0f,0.0f);
glBegin(GL_LINES);
    for(angle=0;angle<=PI2;angle+=0.001)
    {
        glVertex3f(5.85*sin(angle),3.5f,5.85*cos(angle));
        glVertex3f(1.60*sin(angle),0.0f,1.60*cos(angle));
    }
glEnd();

Здесь я рисую усеченный конус, без низа и верха с центром 0, 0 по осям x и y и удаленного на z от наблюдателя, а здесь:
Код

glLoadIdentity();
glTranslatef(0.0,3.5f,z);
glRotatef(xrot,0.0f,1.0f,0.0f);
    glRotatef(yrot,1.0f,0.0f,0.0f);
Torus(0.25f,5.45f);

я рисую тор, который находится внутри конуса на самом верху. Тор и конус связанны друг с другом, это должна быть единая модель, но если я начинаю их вращать, то они вращаются каждый вокруг своей оси. Как мне сделать, чтобы закрепить тор на верхних координатах конуса и он вращался правильно?



Это сообщение отредактировал(а) Salatovec - 16.11.2008, 14:52
PM MAIL   Вверх
TDM
Дата 26.11.2008, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 1.2.2006
Где: SPB

Репутация: нет
Всего: нет



Salatovec, 
Сперва поворачиваешь а потом перемещаешь ёмаё)
PM MAIL ICQ   Вверх
Gongex
Дата 15.2.2009, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



Салатовек,я решал такие проблемы,и знаю как отладить чтоб тор вращался нормально.
использовать надо glPushMatrix(); чтобы сохранить вращения и glPopMatrix(); чтобы сбросить все вращения.

Код

glBegin(GL_LINES);
    for(angle=0;angle<=PI2;angle+=0.001)
    {
glPushMatrix();
glTranslatef(0,0,-5);
        glVertex3f(5.85*sin(angle),3.5f,5.85*cos(angle));
        glVertex3f(1.60*sin(angle),0.0f,1.60*cos(angle));
glPopMatrix();    
}
glEnd();

И!

glLoadIdentity();
glPushMatrix();
glTranslatef(0.0,0,-5);
glRotatef(xrot,0.0f,1.0f,0.0f);
    glRotatef(yrot,1.0f,0.0f,0.0f);
Torus(0.25f,5.45f);
glPopMatrix();


Добавлено @ 00:23
я сам искал исходник загрузки из 3Дсмакс,и все тупили как жлобы,в итоге я сам нашел код,и он работает.Там формат надо сохранять не в .max а в .3DS.Давай почту кину этот исходник.

Добавлено @ 00:32
Я скомпилил твой код и все зависло.Casel-лишнее.Там уже встроена функция бесконечного рисования 
Это вот она по моему glLoadIdentity();

Добавлено @ 00:33
посмотри чего я достиг,в рисовании опенгл::http://unlater.narod.ru/OpenGl.html
с сентября занимаюсь

Это сообщение отредактировал(а) Alexeis - 24.3.2009, 12:38
PM MAIL   Вверх
Rickert
Дата 15.2.2009, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

Репутация: 2
Всего: 52



Цитата(Salatovec @  16.11.2008,  12:00 Найти цитируемый пост)
я рисую тор, который находится внутри конуса на самом верху. Тор и конус связанны друг с другом, это должна быть единая модель, но если я начинаю их вращать, то они вращаются каждый вокруг своей оси. Как мне сделать, чтобы закрепить тор на верхних координатах конуса и он вращался правильно?

glLoadIdentity(); - Во второй части кода лишнее. Попробуйте без неё.
Цитата(Gongex @  15.2.2009,  00:21 Найти цитируемый пост)
использовать надо glPushMatrix(); чтобы сохранить вращения и glPopMatrix(); чтобы сбросить все вращения.

glPopMatrix() не сбрасывает вращения, а восстанавливает ту матрицу преобразования, которая была сохранена  через glPushMatrix();
Цитата(Gongex @  15.2.2009,  00:21 Найти цитируемый пост)
Это вот она по моему glLoadIdentity();

Это функция сброса матрицы преобразований в первоначальную.



--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Gongex
Дата 15.2.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 1.1.2008

Репутация: -1
Всего: 0



Rickert, 
Мне не нужны преподаватели.Я сам все знаю.
Я обобщил научные термины к "простому"....Стирает и сохраняет вращения.
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0832 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.