FWLD

Таверна "Флудицкая"

В теме 6 341 сообщение

Только что, ChioraYaz сказал:

Никто не обязан отчитываться, пойми ты. Заходи и проверяй каждые несколько часов, заодно и онлайн поднимешь.

жжошь, товарищ Х)

Поделиться сообщением


Ссылка на сообщение

нашёл краш-репорт, братцы родимыи!!!

сам нашёл, там совсем несложно...

надо в каком-нибудь дупле отыскать папочку  \fwldlauncher\updates\Architech Test\crash-reports

а дальше вообще всё просто!

 

Спойлер

 

---- Minecraft Crash Report ----
// On the bright side, I bought you a teddy bear!

Time: 7/13/18 2:00 PM
Description: Initializing game

org.lwjgl.LWJGLException: Pixel format not accelerated
    at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
    at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
    at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
    at org.lwjgl.opengl.Display.createWindow(Display.java:306)
    at org.lwjgl.opengl.Display.create(Display.java:848)
    at org.lwjgl.opengl.Display.create(Display.java:757)
    at org.lwjgl.opengl.Display.create(Display.java:739)
    at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:452)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at launcher.client.ClientLauncher.launch(ClientLauncher.java:322)
    at launcher.client.ClientLauncher.main(ClientLauncher.java:203)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
    at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
    at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
    at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
    at org.lwjgl.opengl.Display.createWindow(Display.java:306)
    at org.lwjgl.opengl.Display.create(Display.java:848)
    at org.lwjgl.opengl.Display.create(Display.java:757)
    at org.lwjgl.opengl.Display.create(Display.java:739)
    at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:452)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)

-- Initialization --
Details:
Stacktrace:
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at launcher.client.ClientLauncher.launch(ClientLauncher.java:322)
    at launcher.client.ClientLauncher.main(ClientLauncher.java:203)

-- System Details --
Details:
    Minecraft Version: 1.7.10
    Operating System: Windows 7 (amd64) version 6.1
    Java Version: 1.8.0_131, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 929127920 bytes (886 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
    JVM Flags: 11 total; -XX:HeapDumpPath=ThisTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms1024M -Xmx1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M -Xincgc -XX:+UseFastAccessorMethods -XX:+UseFastEmptyMethods -XX:+DisableAttachMechanism
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML:
    Launched Version: 1.7.10
    LWJGL: 2.9.4
    OpenGL: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
    GL Caps:
    Is Modded: Definitely; Client brand changed to 'fml,forge'
    Type: Client (map_client.txt)
    Resource Packs: []
    Current Language: ~~ERROR~~ NullPointerException: null
    Profiler Position: N/A (disabled)
    Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Anisotropic Filtering: Off (1)
    OptiFine Version: OptiFine_1.7.10_HD_U_D1
    Render Distance Chunks: 8
    Mipmaps: 4
    Anisotropic Filtering: 1
    Antialiasing: 0
    Multitexture: false
    OpenGlVersion: null
    OpenGlRenderer: null
    OpenGlVendor: null
    CpuCount: 4

 

 

о чём там рассказывается, интересно?

  • Против 2
  • Поддерживаю 1

Поделиться сообщением


Ссылка на сообщение
1 час назад, Fale4ka сказал:

Да, по расприватам хотелось бы потыкать палочкой. Несколько дней прошло, ни ответа, ни привета. В личку бы, что ли, стукнули - так, мол и так, расприватим. Или не расприватим, идите нафиг, в меру уважаемая Фалечка.

 

Заявка давно составлена, проблема лишь в том, что наши модераторы куда-то пропали. Поэтому дело стоит на месте, увы. Я попробую с ними связаться, может это ускорит дело. Извините уж... 

  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
1 час назад, Fale4ka сказал:

Да, по расприватам хотелось бы потыкать палочкой. Несколько дней прошло, ни ответа, ни привета. В личку бы, что ли, стукнули - так, мол и так, расприватим. Или не расприватим, идите нафиг, в меру уважаемая Фалечка.

Кхм, да, дела в реале, времени посмотреть как-то не было. Самое позднее, в выходные заявка будет рассмотрена.

Поделиться сообщением


Ссылка на сообщение

А когда будет вайп и новое открытие?
Ну типо исправление ошибок, с новыми основателями силами, большой онлайн, куча мобов, ролеплей, пиксельные девчонки???

  • Нравится 1
  • Поддерживаю 3

Поделиться сообщением


Ссылка на сообщение
2 часа назад, Liqute сказал:

А когда будет вайп и новое открытие?
Ну типо исправление ошибок, с новыми основателями силами, большой онлайн, куча мобов, ролеплей, пиксельные девчонки???

Вайп не нужен. Нужен контент.

Поделиться сообщением


Ссылка на сообщение
7 часов назад, KoCTuK сказал:

нашёл краш-репорт, братцы родимыи!!!

сам нашёл, там совсем несложно...

надо в каком-нибудь дупле отыскать папочку  \fwldlauncher\updates\Architech Test\crash-reports

а дальше вообще всё просто!

 

  Скрыть контент

 

---- Minecraft Crash Report ----
// On the bright side, I bought you a teddy bear!

Time: 7/13/18 2:00 PM
Description: Initializing game

org.lwjgl.LWJGLException: Pixel format not accelerated
    at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
    at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
    at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
    at org.lwjgl.opengl.Display.createWindow(Display.java:306)
    at org.lwjgl.opengl.Display.create(Display.java:848)
    at org.lwjgl.opengl.Display.create(Display.java:757)
    at org.lwjgl.opengl.Display.create(Display.java:739)
    at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:452)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at launcher.client.ClientLauncher.launch(ClientLauncher.java:322)
    at launcher.client.ClientLauncher.main(ClientLauncher.java:203)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
    at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
    at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
    at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
    at org.lwjgl.opengl.Display.createWindow(Display.java:306)
    at org.lwjgl.opengl.Display.create(Display.java:848)
    at org.lwjgl.opengl.Display.create(Display.java:757)
    at org.lwjgl.opengl.Display.create(Display.java:739)
    at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:452)
    at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)

-- Initialization --
Details:
Stacktrace:
    at net.minecraft.client.main.Main.main(SourceFile:148)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at launcher.client.ClientLauncher.launch(ClientLauncher.java:322)
    at launcher.client.ClientLauncher.main(ClientLauncher.java:203)

-- System Details --
Details:
    Minecraft Version: 1.7.10
    Operating System: Windows 7 (amd64) version 6.1
    Java Version: 1.8.0_131, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 929127920 bytes (886 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
    JVM Flags: 11 total; -XX:HeapDumpPath=ThisTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xms1024M -Xmx1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M -Xincgc -XX:+UseFastAccessorMethods -XX:+UseFastEmptyMethods -XX:+DisableAttachMechanism
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML:
    Launched Version: 1.7.10
    LWJGL: 2.9.4
    OpenGL: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
    GL Caps:
    Is Modded: Definitely; Client brand changed to 'fml,forge'
    Type: Client (map_client.txt)
    Resource Packs: []
    Current Language: ~~ERROR~~ NullPointerException: null
    Profiler Position: N/A (disabled)
    Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Anisotropic Filtering: Off (1)
    OptiFine Version: OptiFine_1.7.10_HD_U_D1
    Render Distance Chunks: 8
    Mipmaps: 4
    Anisotropic Filtering: 1
    Antialiasing: 0
    Multitexture: false
    OpenGlVersion: null
    OpenGlRenderer: null
    OpenGlVendor: null
    CpuCount: 4

 

 

о чём там рассказывается, интересно?

 

org.lwjgl.LWJGLException: Pixel format not accelerated - видеокарта не поддерживает opengl, скорее всего у тебя какая-нибудь intel graphics, на таких майн не запускается.

  • Нравится 2

Поделиться сообщением


Ссылка на сообщение
3 часа назад, Mobius сказал:

на таких майн не запускается.

забавно, что месяца три назад с этого же устройства ФеВе запускалось.

Поделиться сообщением


Ссылка на сообщение
15 часов назад, Fale4ka сказал:

Пиксельные? Возьму пару штук. Пригодятся кофейню охранять.

А еще можно сделать бордель!

  • Интересный маневр 1

Поделиться сообщением


Ссылка на сообщение
10 часов назад, KoCTuK сказал:

забавно, что месяца три назад с этого же устройства ФеВе запускалось.

На Гринкубесе была тема. Нужно было добавить JAVA в нужную видеокарту. Типо для быстродействия игры

Поделиться сообщением


Ссылка на сообщение
1 час назад, LisanUtyasheva сказал:

да что вы рычите, нормальная тут администрация, вы посмотрите какая жесть бывает, https://minecraft.guild-bt.ru/community/ на любое слово простыни унижающего нравоучительного текста, только пикните вам на пяти страницах объяснят как вы не правы.

Ну, прямую ссылку бы. Там какой-то донат и ещё донат.

  • Против 1

Поделиться сообщением


Ссылка на сообщение
18 часов назад, KoCTuK сказал:

забавно, что месяца три назад с этого же устройства ФеВе запускалось.

 Попробуй обновить драйвера видеокарты. Вариант еще в том, что мы начали массивнее использовать OpenGL, и она уже не тянет :С

Поделиться сообщением


Ссылка на сообщение

починил, ладно...

что, разумеется, не отменяет косяков с более другими операционными системами, проверенными временем!

  • Против 1

Поделиться сообщением


Ссылка на сообщение

А в чём прикол оптимизации? Здесь, на сервере, всегда стабильно ниже 50 фпс не падает, ну, если больших построек рядом нет, а в ванильном 1.12.2 40 фпс - подарок, мир так вообще прогружать минуту приходится с эскейпом. У вас тут какой-то мод на оптимизацию, что ли?

  • Против 1

Поделиться сообщением


Ссылка на сообщение
3 часа назад, ChioraYaz сказал:

А в чём прикол оптимизации? Здесь, на сервере, всегда стабильно ниже 50 фпс не падает, ну, если больших построек рядом нет, а в ванильном 1.12.2 40 фпс - подарок, мир так вообще прогружать минуту приходится с эскейпом. У вас тут какой-то мод на оптимизацию, что ли?

ну вот хзхз насчет оптимизации, в жта 5 на высоких-ультрах у меня стабильно больше 80 фпс, а на фв может и ниже 50 упасть, и это без шейдеров(но офк со всяким мягким светом)

Поделиться сообщением


Ссылка на сообщение
54 минуты назад, Falor сказал:

ну вот хзхз насчет оптимизации, в жта 5 на высоких-ультрах у меня стабильно больше 80 фпс, а на фв может и ниже 50 упасть, и это без шейдеров(но офк со всяким мягким светом)

В майнкрафте каждый куб это отдельный объект,  даже не инстанс что бы облегчить работу видеокарте.  Тысяч 15 объектов в кадре единовременно, без учёта нагрузки рэндера даже от базовых шэйдеров это 15к (+- за грани) дроуколов только за меши. В Гта на сцене максимум под три сотни объектов. Модели под лодами, текстуры под мипмапами и стримингом, единственное что грузит сцену это хоть какое-то освещение, лайтмапы и примитивные шэйдеры. Там просто нечему просаживать фпс. 

А тут чужая игра, чужой код и оптимизация чужими руками через моды.
Подключив любой профайлер можно увидеть что любой шэйдер не жрёт столько, сколько кривая сборка модов не позволяющая видеокарте совладать с количеством запросов отрисовки к текстурам и разнотипным объектам на сцене.


Просадки фпс (не считая других косяков) тут потому что кто-то решил включить абсолютно не пригодный для игры в сыром виде Biomes O'plenty, да ещё и закидывает новые объекты и нафиг ненужные моды каждый раз новой текстурой, а не 1 текстурным атласом на все объекты с саб юви, как это изначально было в майнкрафте и позволяло ему не лагать с самого его появления. Фпс падает за каждый запрос отрисовки и без учёта шэйда это единственное что нагружает в майнкрафте.

  • Нравится 5

Поделиться сообщением


Ссылка на сообщение
31 минуту назад, AliceAi сказал:

В майнкрафте каждый куб это отдельный объект,  даже не инстанс что бы облегчить работу видеокарте.  Тысяч 15 объектов в кадре единовременно, без учёта нагрузки рэндера даже от базовых шэйдеров это 15к (+- за грани) дроуколов только за меши. В Гта на сцене максимум под три сотни объектов. Модели под лодами, текстуры под мипмапами и стримингом, единственное что грузит сцену это хоть какое-то освещение, лайтмапы и примитивные шэйдеры. Там просто нечему просаживать фпс. 

А тут чужая игра, чужой код и оптимизация чужими руками через моды.
Подключив любой профайлер можно увидеть что любой шэйдер не жрёт столько, сколько кривая сборка модов не позволяющая видеокарте совладать с количеством запросов отрисовки к текстурам и разнотипным объектам на сцене.


Просадки фпс (не считая других косяков) тут потому что кто-то решил включить абсолютно не пригодный для игры в сыром виде Biomes O'plenty, да ещё и закидывает новые объекты и нафиг ненужные моды каждый раз новой текстурой, а не 1 текстурным атласом на все объекты с саб юви, как это изначально было в майнкрафте и позволяло ему не лагать с самого его появления. Фпс падает за каждый запрос отрисовки и без учёта шэйда это единственное что нагружает в майнкрафте.

 

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

  • Против 1
  • Поддерживаю 4

Поделиться сообщением


Ссылка на сообщение
36 минут назад, Mobius сказал:

 

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

Без проблем. В оптифайне есть лайн хук текстур игры, которые он сам при запуске собирает в атлас. Готовое решение без необходимости ручками собирать атласы и прописывать юви сетку, только пути ко всем своим сотням текстур прописать.

Изменено пользователем AliceAi
  • Поддерживаю 3

Поделиться сообщением


Ссылка на сообщение
16 минут назад, AliceAi сказал:

да без проблем. В оптифайне есть лайн хук текстур игры, которые он сам при запуске собирает в атлас. Готовое решение без необходимости ручками собирать атласы и прописывать юви сетку, только пути ко всем своим сотням текстур прописать.

Спасибо за наводку. Как только мы избавимся от более приоритетных задач, мы обязательно вернемся к обсуждению этого вопроса. Кстати, действительно, если использовать профайлер, к примеру Opis, можно увидеть в некоторых местах просадки в FPS. К сожалению, было выявлено, что проблема не в Biomes o'Plenty.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение

Да могу прямо пальцем показать где и что.. Когда с шэйдерами игралась пришлось шэйдмодел оптифайна копать.. 

Просто как бы ни хотелось всего и сразу да побольше, может не стоит пихать в проект всё подряд на своё усмотрение.. 
Народ то ни с проста не задержался здесь, хотя желание было и сейчас есть. 

Мне со своей колокольни конечно не видно, но.. создайте большую тему или опрос какой, кто и чего хочет от проекта, кому какое времяпровождение приятно и кто как хочет играть. 
Для хорошей игры много не нужно..

При такой мощной организованной базе создать что-то невероятное и интересное уже более чем реально.  К тому же едва-ли тут уже кто-то сильно держится за этот мир и пострадает от новой генерации, да к тому же с какой-нибудь компенсацией нажитого. 

Изменено пользователем AliceAi
  • Поддерживаю 4

Поделиться сообщением


Ссылка на сообщение
3 часа назад, Falor сказал:

ну вот хзхз насчет оптимизации, в жта 5 на высоких-ультрах у меня стабильно больше 80 фпс, а на фв может и ниже 50 упасть, и это без шейдеров(но офк со всяким мягким светом)

У меня ГТА 5 показал бы не 50 фпс, а просто фигу и чёрный экран, если не синий.

  • Против 1

Поделиться сообщением


Ссылка на сообщение
19 часов назад, AliceAi сказал:

При такой мощной организованной базе создать что-то невероятное и интересное уже более чем реально.  К тому же едва-ли тут уже кто-то сильно держится за этот мир и пострадает от новой генерации, да к тому же с какой-нибудь компенсацией нажитого. 

 

Тут не в ресурсах дело. Игроки строят огромные города и подземелье, а вайп - разрушит все их старания и все. Если бы можно было перенести те же самые постройки с сохранением микроблоков и блока плотника, то проблем бы не возникало, а так попробуй чьи-то огромные проекты перенести...
Это очень плохая идея и слишком большие жертвы ради прибавления +20 фпс. Надо было раньше об этом думать, уже поздно.

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти