Ogre3D Basic Tutorials / Базовые туториалы Ogre3D

→RENDER TO TEXTURE
0 РЕНДЕР В ТЕКСТУРУ
→We have a small issue that we will need to address, however.
0 Однако, у нас есть небольшая проблема, которую нам придется решить.
→We can now swap the SceneManagers with the C key, and swap single and dual mode with the V key.
0 Теперь мы можем переключаться между менеджерами сцен с помощью клавиши "C" и переключаться между одиночным и двойным режимом камеры с помощью клавиши "V".
→Running the program should show a space sky box.
0 Запуск программы должен показать космический skybox.
→They could just as well have been first class data members of our BasicTutorial4 class, but as they're only used by that function, it makes more sense to have them there.
0 Они так же хорошо могли бы быть и членами первого класса данных нашего BasicTutorial4, но так как они используются только в этой функции, имеет больше смысла держать их здесь.
→That of course depends on what you need to do, but if you only want to update your stuff once per frame, put it in the frameRenderingQueued event, because that one is called just before the GPU is made busy by flipping the render buffer.

So you want to keep your CPU busy while the GPU works.
0 Это конечно зависит, от того, что вам нужно в итоге, но если вы хотите обновлять материал один раз за фрейм, то поместите его в событие frameRenderingQueued, потому что только оно одно вызывается прямо перед началом нагрузки на GPU (путем сброса буферов рендринга).

Таким образом вы сохраните ваш CPU, в то время как GPU будет нагружен.
→In order to become a fully functional FrameListener, you need to register it with Ogre::Root.

You need to do that because Ogre::Root needs to know what framelisteners to call when a frame event occurs.
0 Для того, чтобы сделать полнофункциональный FrameListener, вы должны зарегистрировать его в Ogre::Root.

Вам нужно сделать это, так как Ogre::Root должен знать какой FrameListener вызывать, когда происходит событие связанное с фреймами.
→THE INITIAL CODE
0 ПЕРВОНАЧАЛЬНЫЙ КОД
→GETTING STARTED
0 ДЛЯ НАЧАЛА
→TUTORIAL INTRODUCTION

In this tutorial we will be exploring how to use CEGUI with Ogre.
0 КРАТКОЕ СОДЕРЖАНИЕ

В этом туториале мы изучим, как использовать CEGUI совместно с Ogre.
→Note that in the frameStarted method, FrameEvent::timeSinceLastFrame will contain how long it has been since the last frameStarted event was last fired (not the last time a frameEnded method was fired).
0 Отметим, что в методе frameStarted, FrameEvent::timeSinceLastFrame будет содержать количество времени с последнего воспроизведения кадра в событии frameStarted (не событие frameEnded).
→Note that the add|removeFrameListener methods only take in a pointer to a FrameListener (that is, FrameListeners do not have names you can use to remove them).
0 Обратите внимание, что методы add|removeFrameListener берут только указатели на FrameListener (то есть FrameListeners не имеют имен, которые вы можете использовать).
→The addFrameListener method adds a FrameListener, and the removeFrameListener method removes a FrameListener (that is, the FrameListener will no longer receive updates).
0 Метод addFrameListener добавляет FrameListener, а метод removeFrameListener удаляет FrameListener (то есть FrameListener больше не будет получать обновления фреймов).
→One important concept to realize about Ogre's FrameListeners is that the order in which they are called is entirely up to Ogre.
0 Одна важная концепция, порядок вызова кадровых контроллеров полностью зависит от Ogre.
→If you need to ensure that FrameListeners are called in a certain order, then you should register only one FrameListener and have it call all of the objects in the proper order.
0 Если вам нужно убедиться, что кадровые контроллеры вызываются в правильном порядке, то зарегистрируйте только один контроллер и заставьте его вызывать все объекты в надлежащем порядке.
→Quite simply, to use a Quaternion to rotate a vector, all you have to do is multiply the two together.
0 Проще говоря, чтобы использовать Кватернионы, для поворота вектора, все что вам нужно сделать, это перемножить две части.
→frameRenderingQueued: Called after all render targets have had their rendering commands issued, but before
the render windows have been asked to flip their buffers over.
1 frameRenderingQueued: Вызывается после того, как все части рендринга получат свои команды, но до того, как окно рендеринга запросит сброс их буферов.
→Once the request to 'flip buffers' happens, the thread requesting it will block until the GPU is ready, which can waste CPU cycles.
0 Как только запрос на "сброс буферов" произойдет, поток запрашивающий это будет блокирован, пока GPU не будет готов. Это все может потратить ресурсы процессора.
→Use the frameRenderingQueued function of the FrameListener to update on a per frame basis if you want performance.
1 Для обновления каждого кадра используйте функцию frameRenderingQueued, если вы хотите производительности.
→These can take a little while to finish, and so while that is happening the CPU can be doing useful things.
0 Это может занять некоторое время, и когда наконец это произойдет CPU может стать полезной вещью.
Резюме
Пол:
мужчина
Родной язык:
русский
С нами:
с 26 июня 2011 г. (5594 дня)
Деятельность:
1028 версий перевода с общим рейтингом 95
75 комментариев
Карма: 6 (оценок: 6)
Написать proVIDec личное сообщение