Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 21:08   #1
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию Раскрасить куб. DirectX and Delphi.

Создаю куб с помощью функции D3DXCreateBox. Собственно вопрос - как раскрасить каждую сторону куба разным цветом.

Заранее благодарен.
Crivel вне форума Ответить с цитированием
Старый 10.06.2010, 20:54   #2
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Если без освещения, то, наверное, стандартный кубик не получится (простыми средствами). Создавайте набор вершин с цветовой составляющей вручную. Примеры вроде есть в сети. Это не сложно. Ещё вариант: включить освещение. Так ещё проще, но не уверен, это ли вам нужно.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 11.06.2010, 00:03   #3
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Предлагаю такой вариант.
Правда я с указателями работать на Делфи не умею, поэтому сами чё нить придумайте.
Да и картинка какая то странная получилась.
Я ожидал, что будет три грани красного цвета и одна синего.
А получилась чепушень какая то.
И ещё вопрос, с temp-ым Мешем делать чё-нить надо.
Я его попытался Releas-нуть, но после этого программа забажила.

Код:
function as3d_CreateBox(Width, Height, Depth : Single; Name : string) : HRESULT;
var
  tempCube: ID3DXMesh;
  TempPoint: Pointer;
begin
 result := D3DXCreateBox(FD3DDevice, Width, Height, Depth, tempCube, 0);
 Inc(nCubes);
 tempCube.CloneMeshFVF(D3DXMESH_MANAGED, D3DFVF_XYZ or D3DFVF_NORMAL or D3DFVF_DIFFUSE, FD3DDevice, Cubes[nCubes]);
 NameCubes[nCubes] := Name;
 Cubes[nCubes].LockVertexBuffer(D3DLOCK_DISCARD, TempPoint);
 asm
 mov eax, TempPoint
 mov ecx, 18
 add eax, 4*6
@M1:
 mov dword ptr [eax], 00ff0000h
 add eax, 4+6*4
 loop @M1
 mov ecx, 6
@M2:
 mov dword ptr [eax], 000000ffh
 add eax, 4+6*4
 loop @M2
 end;
 result := Cubes[nCubes].UnlockVertexBuffer
end;
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL в delphi. Как перемещать куб с помощью мыши Xawk Мультимедиа в Delphi 2 08.12.2009 12:20
Книга DirectX и Delphi.... Jupiter Свободное общение 8 22.08.2009 19:26
picking directX(Delphi) Mell12345678 Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 04.06.2009 10:31
Ищу движок (delphi directx 9) [Smarik] Gamedev - cоздание игр: Unity, OpenGL, DirectX 14 26.08.2008 22:34
New Project: DirectX and Delphi Kostia Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 04.05.2008 04:27