Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

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

Где можно глянуть список всех функций для CG(шейдера)?
Что-то не вспомню как остаток от деления вычислить.
(Offline)
 
Ответить с цитированием
Старый 06.02.2013, 07:20   #1262
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Тут например
http://http.developer.nvidia.com/Cg/Cg_language.html
http://http.developer.nvidia.com/Cg/index_stdlib.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 06.02.2013, 17:49   #1263
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Вопросы от новичка

Кто-нибудь пробовал выводить rendertexture на экран через GUI.DrawTexture? Дело в том, что мне надо отрендерить за пределами сцены модель, а потом полученную текстуру поместить на экране, и самое поганое - чтобы отрендеренная модель на этой текстуре отображалась нормально, но была с полностью прозрачным фоном.
Пока нашел два варианта. Первый - самый простой - просто вывести текстуру на экран. В этом случае фона от рендера позади отрендеренной модели не видно, но сама текстура будто с альфой 0.5
Затем нашел популярный скрипт с шейдером и пострендером, который вырубает у рендер текстуры альфу вообще - тогда модель на этой рендер текстуре становится без альфы, но при этом у самой текстуры начинается рендериться "пустой синий фон" позади модели

Вот как бы добиться рендера на подобии такого http://portal.aecorp.in/wp-content/u...-Selection.jpg
Когда модель рендерится поверх GUI, но при этом она не прозрачная, НО с прозрачным фоном, через который видно GUI-окно позади нее

Уже мозг сломал, пытаясь решить проблему
(Offline)
 
Ответить с цитированием
Старый 06.02.2013, 17:54   #1264
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Вопросы от новичка

А не пробовал снимать рендер текстуры с камеры, которая рендерит только нужную модель? Настроить модели определенный слой, и камере поставить только рендеринг этого слоя.
(Offline)
 
Ответить с цитированием
Старый 06.02.2013, 18:00   #1265
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Вопросы от новичка

Сообщение от Nuprahtor Посмотреть сообщение
А не пробовал снимать рендер текстуры с камеры, которая рендерит только нужную модель? Настроить модели определенный слой, и камере поставить только рендеринг этого слоя.
Я именно так и рендерю. И камера у меня рендерит по сути только одну модель, позади модели в рендер попадает лишь "обще-мировой" фон, который определяется через clear flag камеры (например Color или SolidColor). И все бы хорошо - в рендер текстуре этот фон получается совершенно прозрачным. Вот только отрендеренная модель при этом так же прозрачна (хотя на сцене она вообще с шейдером Diffuse), будто в сцене перед рендером кто-то выставил альфу 0.5

То есть смотри приведенный мной скрин из дьяблы - представь что модель монаха на нем просвечивает будто с альфой 0.5 и сквозь нее видно гуишное окно

Если же я тем хитрым скриптом вырубаю альфу у рендер текстуры - то помимо уже ставшей нормальной модели на рендер текстуре проявляется и тот самый фон камеры, описанный в clear flag. То есть опять же - посмотри на этот скрин из дьяблы и представь, что монах стал "плотным", не прозрачным, но при этом он висит на черном или синем фоне на всю площадь отображенной через гуи рендер-текстуры (как если бы ты картинке с прозрачным фоном в фотошопе поставил не прозрачный бэкграунд)
(Offline)
 
Ответить с цитированием
Старый 06.02.2013, 20:23   #1266
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

А зачем GUI.DrawTexture? Просто выключи камеру, рендерящую модель и прям в OnGUI вызови camera.Render() предварительно задав ей pixelRect. Это можно сделать только в событии Repaint.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 06.02.2013, 22:13   #1267
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
А зачем GUI.DrawTexture? Просто выключи камеру, рендерящую модель и прям в OnGUI вызови camera.Render() предварительно задав ей pixelRect. Это можно сделать только в событии Repaint.
У меня GUI-окна могут в любом порядке перекрывать окно с отрендеренным персонажем

В принципе уже разобрался с проблемой - пришлось немного подшаманить сам шейдер модели. Уже не думал, что именно в нем затык был
(Offline)
 
Ответить с цитированием
Старый 07.02.2013, 00:06   #1268
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

На объекте Player висит скрипт:

public class Door MonoBehaviour {
    public 
Animation d;

    
void Start () 
    {
        
d=GetComponentInChildren<Animation>();
        
d.animation.Play("1"); 
    }

Как запустить анимацию?
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 1011
Размер:	128.7 Кб
ID:	18627  
__________________
(Offline)
 
Ответить с цитированием
Старый 07.02.2013, 02:17   #1269
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

А где, собственно, компонент Animation? Вы его ищете на детях, а где он на детях?- нет его...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (07.02.2013)
Старый 07.02.2013, 03:27   #1270
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Анимацию на объекте вообще искать не надо. Просто обращаться к ней через свойство animation.
А никто не делал вертолет? Сделал к точке пропеллера силу
float finalForce = Physics.gravity.magnitude*force;
Vector3 dir = Quaternion.Euler(angles) * mainRotor.transform.up;
rigidbody.AddForceAtPosition(dir*finalForce, mainRotor.transform.position, ForceMode.Acceleration);
angles это небольшой наклон пропеллера. Но если этот наклон будет постоянный, то вертолет переворачивается.
Конечно можно просто вручную контролировать наклон вертолета, но вряд ли что хорошее получится. Да и при столкновении вертолет уже имеет право перевернуться.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (07.02.2013)
Старый 07.02.2013, 07:19   #1271
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от Amatsu Посмотреть сообщение
У меня GUI-окна могут в любом порядке перекрывать окно с отрендеренным персонажем
А в чем проблема то? Камера выключена, рисуется в том же месте что и GUI.DrawTexture, только вызывается camera.Render(). И не нужна рендертекстура. Я так в GUI рисовал сталкера в интерфейсе (скрины ты видел).
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 07.02.2013, 09:20   #1272
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
А в чем проблема то? Камера выключена, рисуется в том же месте что и GUI.DrawTexture, только вызывается camera.Render(). И не нужна рендертекстура. Я так в GUI рисовал сталкера в интерфейсе (скрины ты видел).
Да уже понял, о чем ты. Но решил проблему через RenderTexture. К тому же в твоем случае если окно с отрендеренным персонажем спокойно ездит по экрану - я так понимаю надо и камеру с моделью как-то смещать, чтобы его позиция отрисовывалась всегда в нужной позиции экрана (или я до конца не догнал технологию). С рендертекстурой как-то надежнее - модель и камера всегда в одних координатах, где бы ни находилось нужное GUI-окно
(Offline)
 
Ответить с цитированием
Старый 07.02.2013, 09:28   #1273
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Я же написал выше что для камеры тоже надо задавать pixelRect как и для GUI.DrawTexture, единственное этот рект отличается немного (инвертирован по высоте на сколько я помню).
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 07.02.2013, 12:01   #1274
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
Я же написал выше что для камеры тоже надо задавать pixelRect как и для GUI.DrawTexture, единственное этот рект отличается немного (инвертирован по высоте на сколько я помню).
К слову, попробовал щас влезть в этот iGUI. Я просто гуглил что компонент Image они выводят через GUI.DrawTexture, но на вскидку не нашел, где он вызывается. Надо лезть в их классы, смотреть их пробросы методов. Проще рендертекстурой ограничиться
(Offline)
 
Ответить с цитированием
Старый 07.02.2013, 13:13   #1275
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

namespace iGUI
{
    using System;
    using UnityEngine;

    public class iGUIImage : iGUIElement
    {
        public bool alpha = true;
        public float aspectRatio = 0f;
        public Texture image;
        public ScaleMode scaleMode;

        internal override void draw()
        {
            this.beforeDraw();
            if (this.image != null)
            {
                Color backgroundColor = base.backgroundColor;
                backgroundColor.a = GUI.color.a;
                GUI.color = backgroundColor;
                GUI.DrawTexture(base.rect, this.image, this.scaleMode, this.alpha, this.aspectRatio);
                GUI.Label(base.rect, base.label);
                GUI.color = base.newColor;
            }
            base.draw();
        }

        public override void onCreate()
        {
            if ((Mathf.Approximately(this.positionAndSize.x, 0.5f) && Mathf.Approximately(this.positionAndSize.y, 0.5f)) && (Mathf.Approximately(this.positionAndSize.width, 0.5f) && Mathf.Approximately(this.positionAndSize.height, 0.5f)))
            {
                this.positionAndSize.width = 1f;
                this.positionAndSize.height = 1f;
            }
            if (!Application.isPlaying && (this.image == null))
            {
                this.image = iGUIRoot.getTexture("iGUILogoTransparent");
                base.label.text = "";
            }
        }
    }
}
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amatsu (07.02.2013)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com