Hotwire Вообщем-то ничего удивительного Добавь второй кубик и попробуй честно посчитать столкновения между ними. Не думаю что такое где-то есть. Возьми С++-сные и сделай из них фасмовые с помощью search & replace.
Ваша взяла! Движок разрабатывать - полный геморой, а особенно на асме. Какой движок посоветуете для новичка?
Вопрос несколько не по теме. Игрался я со смешиванием, а напоролся на баг. Нарисовал квадрат, натянул на него текстуру, затем подвинулся поближе, включил смешивание, нарисовал треугольник, отключил смешивание. Перед началом рисования треуголька текстурирование было отключено, а потом опять включено. Смешивает нормально, а вот текстура посинела. Шо делать? Цвет текстуры изменяется по цвету последней вершины. Изначально была синяя, потому и посинела, когда сделал красной покраснела и т.д.
Есть графические двиги, в том числе бесплатные - Irrlicht, ODE и т.д. Но никогда ими не пользовался, что к чему не знаю. Знаю только что Irrlicht - отстой, современные фичи не использует, отсюда очень не оптимален, годиться только для обучения. ODE - объектно ориентированный, можно ли его юзать на асме или только на С++ не знаю. Но простенький граф двиг IMHO можно и самому сделать, правда только в DirectX. Так как многое там уже сделано, например проблемы загрузки и отображения моделей, скелетная анимация и т.д. В OpenGL конечно надо быть семи пядей волбу чтобы это всё сделать. IMHO также большой интерес представляют, физические двиги. Я пробовал бесплатные: Tokamak и Newton. Newton либа stdcall, на любом языке можно использовать, но есть баги, например объекты при большой скорости могут проходить свозь друг друга. В Tokamak вроде багов поменьше, но в С++ классах. Вообще тебе прямая дорога на http://www.gamedev.ru Я там форум тоже посещаю.
К _DEN_ При рисовании треугольника использовал glColor3f. К Booster Где движки типа Tokamak или Newton cкачать можно, а также SDK к ним, если они конечно существуют?
Роясь в чужих исходниках(сам знаю, что читать чужие сорсы плохо) нашел вызовы GLU'шных функций, с помощью которых рисуют некоторые геометрические примитивы(цилиндр,например). Как их юзать?
Hotwire читать чужие сорцы - не хорошо... - а ооочень хорошо! Собственно учиться на чужих ошибках часто лучше чем на своих Загляни сюда: http://www.wasm.ru/forum/viewtopic.php?id=19863 http://www.firststeps.ru/mfc/opengl/opengl1.html
Hotwire OpenGL это стейт-машина. Если ты задал glColor3f, то ты задал стейт. Все последующие вертексы будут брать этот цвет до тех пор, пока ты новый цвет не задашь.
К _DEN_ С колором разобрался, работает как часы. К Y_Mur Поставлю вопрос ребром. Как мне нарисать цилиндр, и как его текстурировать?
Hotwire Если по-школьному, то gluCylinder. Если по ПТУ-шному, то генеришь вертексы сам. Циллиндрическая система координат тебе в руки. Если по-паццаноффски, то пишешь свой экспорт плагин к максу или парсер 3DS.
Hotwire Конечно существуют. Набираю в яндексе "Физические движок Newton, Tokamak" И получаю первым в списке www.interface.ru/home.asp?artId=2650 - Game development: Физика в играх / Возможности существующих движков Как раз почитаешь о них, у знаешь где взять. _DEN_ IMHO самый кульный способ, мозги заставляет работать.
Давай по-школьному. Какие параметры функции gluCylinder? И как это чудо текстурировать? По ПТУ-шному переходить в полярные координаты? Плагин есть? Это по-паццаноффски.
Hotwire Какие полярные? Ты окружность чертить умеешь? А Z координату менять в цикле? Когда-то я даже библу писал, для создания разных фигур, и разной триангуляцией. IMHO ничего сложного. Советую размять мозги, развивающийся флаг например сделать и т.д.
Booster Детский сад это, а не кульный способ. Ни один крупный игровой проект не занимается генерацией геометрии на лету. Только экспорт из редактора. Hotwire У тебя МСДН есть? Код (Text): The gluNewQuadric function creates a quadric object. GLUquadricObj* gluNewQuadric( void ); The gluQuadricTexture function specifies whether quadrics are to be textured. void gluQuadricTexture(GLUquadricObj *quadObject, GLboolean textureCoords); The gluCylinder function draws a cylinder. void gluCylinder(GLUquadricObj *qobj, GLdouble baseRadius, GLdouble topRadius, GLdouble height, GLint slices, GLint stacks);