Показать сообщение отдельно
Старый 22.06.2012, 23:51   #379
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

pax, а ты пользовался Graphics.DrawMeshNow или Graphics.DrawMesh?
Не представляю зачем они в игре могут понадобится.
Я через Graphics.DrawMeshNow хочу рисовать модель в EditorWindow.
Уже почти все работает, но столкнулся с кучей проблем.
1) Нужно задавать RenderSettings.ambientLight, а после закрытия окна возвращать старой значение. Причем в событии Repaint это почему-то не срабатывает)
2) Загружать перспективную матрицу проекции, хотя это не проблема.
3) Почему-то надо изменять GL.SetRevertBackfacing на true. Ибо кулинг в OnGUI не так работает.
4) Без Transform нормально нельзя вращать модель(
5) Не работает тест глубины. И как ее включить я пока не пойму(

Вообщем код пока выглядит так
void OnGUI() {
	if(Event.current.type == EventType.Repaint) {
		GL.PushMatrix();
		float aspect = position.width/position.height;
		Matrix4x4 projMatrix = Matrix4x4.Perspective(65, aspect, 0, 100);
		GL.LoadProjectionMatrix(projMatrix);
		GL.SetRevertBackfacing(true);
		OnRender();
		GL.SetRevertBackfacing(false);
		GL.PopMatrix();
	}
}

private void OnRender() {
	material.SetPass(0);
	Graphics.DrawMeshNow(mesh, meshPosition, Quaternion.Euler(meshRotation));
}
(Offline)
 
Ответить с цитированием