Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.29;
Скачать: CL | DM;

Вниз

glScale и яркость объекта   Найти похожие ветки 

 
Sco ©   (2006-03-26 11:10) [0]

Чем больше я уменьшаю обьект тем он ярче!!! Пример:
factor:=x/obj.SizeZ
glScale(factor,factor,factor);
 obj.Draw;
glScale(1/factor,1/factor,1/factor);
И чем меньше x тем ярче обьект! Причём на некоторые обьекты ето не влияет! Сравнил код вроде ничем принципиально не отличается, а такого эффекта не возникает. Как справиться с этим? А Объект норовит стать звездой!


 
DeadMeat ©   (2006-03-26 12:37) [1]

Чем меньше у тебя объект, тем "ближе" и "теснее" в нем располагаются полигоны. А раз освещение в OGL по умолчанию вертексное, то соотвественно и ярче становится. Ибо в одном месте уже больше освещенных полигонов.
Если будешь увеличивать, а источник света остается на месте, то освещенные полики "разбегаются". Получается, что такой концентрации в одном месте уже нет. Вертексы та далеко уже друг от друга.
А в первом варианте близко.
А во втором далеко.
А в первом близко.

Пример:
Есть четыре лампочки. Светятся. Вот если их поставить на расстоянии 20 метров друг от друга на одной какойто доске, то эта доска уже не такая яркая. Освещены только те части, где лампочки. Может быть даже освещена она вся. Но если эти лампочки свести к центру на расстоянии и поставить вплотную, то в центре уже ярко. А если еще и доску поменять (размеры) так, чтобы каждая лампочка всегда была в одном из углов, то получится. что вся доска уже светится. Если растянуть, то уже не светится, а просто освещена..

Короче я щас торможу... может не понятно объяснил.

---
...Death Is Only The Begining...


 
Sco ©   (2006-03-26 18:51) [2]

to DeadMeat © , обьяснил то понятно, но обьект мне надо уменьшать как-никак, а Солнце на шахматной доске мне не нужно, как затемнить обьект до уровня "без изменения размеров", или как вообще затемнить обьект?


 
XProger ©   (2006-03-27 05:19) [3]

Sco, glEnable(GL_NORMALIZE);
glScale производит некоторые операции над матрицей вида. После применения такой матрицы к вектору нормали грани, её длина становится <> 1. Этот флаг укажет OpenGL о необходимости приведения нормалей к 1 длине.



Страницы: 1 вся ветка

Текущий архив: 2006.10.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.049 c
15-1160158025
AntiUser
2006-10-06 22:07
2006.10.29
Один запрос 0.5 сек, такой же изменный 15 сек 8(


2-1160638881
Volodya_
2006-10-12 11:41
2006.10.29
TOleContainer


3-1157456549
pic509
2006-09-05 15:42
2006.10.29
"Залипание" данных при вызове Хранимой процедуры


15-1160459701
Александр Иванов
2006-10-10 09:55
2006.10.29
Настройка Visual Source Safe 6.0


3-1156964792
RagapuK
2006-08-30 23:06
2006.10.29
ошибка при сохранени "Table1: DataSet not in edit or insert mode"