forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как закрасить куб градиентом разными цветами? (http://forum.boolean.name/showthread.php?t=11805)

Real 28.01.2010 22:18

Как закрасить куб градиентом разными цветами?
 
как закрасить куб тремя разными цветами?( RGB )

FireOwl 28.01.2010 22:49

Ответ: Помогите.
 
1 вариант. Создать куб в 3dMax'e и там выделяя по граням затекстурировать.
2 вариант. Создавать из сюрфейсов и красить брашами каждую грань. Или использовать оператор Vertexcolor
Что значит тремя цветами? Каждую грань своим цветом?

Real 28.01.2010 22:53

Ответ: Помогите.
 
1 не подходит.
чтоб куб был целиком закрашен тремя цветами модели RGB как одним сплошным цветом,наверно надо через VertexColor,только как?.

FireOwl 28.01.2010 23:00

Ответ: Помогите.
 

Вроде этого?

Real 28.01.2010 23:01

Ответ: Помогите.
 
да подходит.
завтра уже надо сдать его.

ABTOMAT 28.01.2010 23:08

Ответ: Помогите.
 
1. Ничего не понял!
2. Название топика "Помогите" не отражает сути топика. Так что ещё раз - и такие топики буду сносить.
3. Формулировка проблемы очень расплывчата. Можно и каждую из сторон сделать разного цвета, а можно и градиентом, как на картинке

Потрудись уточнить, что требуется

*Обновил: пока писал этот пост за меня уже вариант предложили =\ Что ещё раз доказывает, что проблему надо описывать сразу и в первом посте

Real 28.01.2010 23:09

Ответ: Помогите.
 
ну то что на обеих картинках подходит,только чтобы куб так был закрашен.

ABTOMAT 28.01.2010 23:16

Ответ: Как закрасить куб градиентом разными цветами?
 
Тогда при посощи GetSurface() находи сурфейс куба (подсказка: он имеет индекс 0), потом перебирай все его вершины (VertexCount()) и задавай им цвет VertexColor(). Подсказка: если задашь одной вершине красный цвет, а соседней - зелёный, то между ними как раз и будет этот градиент Красный-> Зелёный, то есть достаточно каждой вершине куба задать чистый (красный, зелёный, синий, и т.д.) цвет, а градиент появится сам.

И да, там будет пара непонятных вещей. Например, куб, созданный CreateCube() имеет не 8 вершин, а 24. Это сделано для правильного освещения.

Так что будет проще имхо создать куб самому:
CreateMesh()
CreateSurface()
AddVertex()
AddTriangle()

Рыбы на сегодня нет, раздача удочек окончена.
Справка - help.boolean.name спасёт отца русской демократии.
Задача несложная.

Real 28.01.2010 23:19

Ответ: Как закрасить куб градиентом разными цветами?
 
я блиц только начил изучать ,и врядле получиться это все проделать,ну и
на этом спасибо.

Real 28.01.2010 23:35

Ответ: Как закрасить куб градиентом разными цветами?
 
а какие координаты у вершин куба будут?:)

FireOwl 28.01.2010 23:42

Ответ: Как закрасить куб градиентом разными цветами?
 
Вообщем-то любые, но удобно использовать еденицы. Представь кубик в координатном пространстве. Левый верхний передний угол тогда будет -1,1,-1
(x,y,z Блитц-координаты) правый нижний передний 1,-1,-1. И т.д.

Real 28.01.2010 23:59

Ответ: Как закрасить куб градиентом разными цветами?
 
что то не выходит:(

FireOwl 29.01.2010 00:07

Ответ: Как закрасить куб градиентом разными цветами?
 
Вложений: 1
Вот пример в архиве:
Вложение 8908
В начале генерируются в цикле восемь случайных цветов для восьми вершин куба.
Затем создаются все шесть граней куба, каждая по отдельности.

Ты правильно камеру развернул? Иногда все делаешь правильно, но ничего не видишь, так как камера висит бог весть где.

Real 29.01.2010 00:12

Ответ: Как закрасить куб градиентом разными цветами?
 
FireOwl огромное спасибо.

Flash 29.01.2010 23:55

Ответ: Как закрасить куб градиентом разными цветами?
 
и тут ты, я ж уже набросал код
Код:

Graphics3D 800,600,32,2
 cam = CreateCamera()
 CreateLight()
 cube = CreateCube() 

 cube_s = GetSurface(cube,1)
 EntityFX cube,2   

 For tmp = 0 To 23 Step 4
       
 Select tmp
    Case 0
    r=0
    g=0
    b=255
    Case 4
    r=255
    g=0
    b=0
    Case 8
    r=0
    g=255
    b=0
    Case 12
    r=255
    g=0
    b=0
    Case 16   
    r=255
    g=0
    b=0     
    Case 20
    r=0
    g=255
    b=0
  End Select
      For t=0 To 3 
    VertexColor cube_s,tmp+t,r ,g,b
  Next
 Next
 PositionEntity cube,0,0,6
 While Not KeyDown(1)
 TurnEntity cube,.1,-.2,.3
 RenderWorld
 Flip
 Wend
 End



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

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