Задать вопрос
  • Почему код без условных переходов медленнее чем с ними? Ассемблер. Если должно быть наоборот?

    @SergeySerge11 Автор вопроса
    Дополню, что заметил.
    1. Я еще заметил, точнее не учел, что если if(t>max) выполнится, то очевидно второй if(t 2. Не учел оптимизацию, в циклах что можно без cmp инструкции счетчик уменьшать, и ждать когда он станет 0.
    dec edx
    jne Begin
    быстрее(при том я даже видел этот пример в preview net 9.0 но забыл)
    3. Не учел раскрутки если раскрутить хотя бы на 2 то быстрее. Если заменить на чтение 64бит сразу
    asm.mov(r11, __[rcx + rax * 4]); //r11d 1 часть.
    asm.shr(r11,32); // 2 часть.

    4. Еще можно ускорить, если изменения счетчика(или итератора) поставить сразу после операций чтения, что бы не просаживало конвеер, так как следующая операция под ним ждет конца чтения.
    А замедление связано похоже с тем, что компилятор c# получает структуру minmax тем, что кладет на стек 2 store-ами ее поля, и затем считывает, вместо того что бы просто вернуть min | max<<32

    Что с этим редактором, как он в тихоря удаляет исправления, в разных местах, что это "if(t 2." там должно быть выражения а оно пропало
    Написано
  • Почему код без условных переходов медленнее чем с ними? Ассемблер. Если должно быть наоборот?

    @SergeySerge11 Автор вопроса
    Everything_is_bad, да, и всегда, вот все коды с extern функциями, любая нейросеть генерит праивильно(копирует с формумов) Я удивлюсь если хоть один раз из 1000 она не правильно сгенрит(пока яяеще не удивлялся)
    public static class ExecuteAllocator
    {
        public static nint Alloc(int size)
        {
            return VirtualAlloc(IntPtr.Zero,
            (IntPtr)4096,
            AllocationType.Commit | AllocationType.Reserve,
            MemoryProtection.ExecuteReadWrite);
        }
        public static void Free(nint ptr) => VirtualFree(ptr, 0, FreeType.Release);
    
        [DllImport("kernel32.dll", SetLastError = true)]
        private static extern IntPtr VirtualAlloc(
            IntPtr lpAddress,
            IntPtr dwSize,
            AllocationType flAllocationType,
            MemoryProtection flProtect);
    
        [DllImport("kernel32.dll", SetLastError = true)]
        private static extern bool VirtualFree(
            IntPtr lpAddress,
            IntPtr dwSize,
            FreeType dwFreeType);
    
        [Flags]
        public enum AllocationType
        {
            Commit = 0x1000,
            Reserve = 0x2000,
            Decommit = 0x4000,
            Release = 0x8000,
            Reset = 0x80000,
            Physical = 0x400000,
            TopDown = 0x100000,
            WriteWatch = 0x200000,
            LargePages = 0x20000000
        }
    
        [Flags]
        public enum MemoryProtection
        {
            Execute = 0x10,
            ExecuteRead = 0x20,
            ExecuteReadWrite = 0x40,
            ExecuteWriteCopy = 0x80,
            NoAccess = 0x01,
            ReadOnly = 0x02,
            ReadWrite = 0x04,
            WriteCopy = 0x08,
            GuardModifierflag = 0x100,
            NoCacheModifierflag = 0x200,
            WriteCombineModifierflag = 0x400
        }
    
        [Flags]
        public enum FreeType
        {
            Decommit = 0x4000,
            Release = 0x8000,
        }
    }
    Написано
  • Какая функция (или набор разных ф-ий) изменения "мощности" цвета света при распространении луча?

    @SergeySerge11 Автор вопроса
    Wataru, не работает как ожидаю, По этой формуле, интенсивность в разы падает уже при малейшем шаге.
    Тогда как я ожидаю более менее плавное по градиенту изменение цвета. Мне же нужен финальный параметр для блендинга. А он сразу же в 2 раза падает на расстоянии 1.4, тогда как ожидаю под 100%.
    Я просто не понимаю, где взять параметр, который я засуну в функцию Lepr(color1,color2,f)
    Написано
  • Какая функция (или набор разных ф-ий) изменения "мощности" цвета света при распространении луча?

    @SergeySerge11 Автор вопроса
    знаю, что много, допустим мне нужен какой-то 1 параметр, нужна какая-то простая функция(скорей всего она в 1 строку) в итератор.
    Написано
  • Какая функция (или набор разных ф-ий) изменения "мощности" цвета света при распространении луча?

    @SergeySerge11 Автор вопроса
    то есть правильно ли так, допустим я задаю начальное значение яркости, а далее его уменьшаю на квадрат расстояния * pi . И у места отражения, будет этот показатель как L=L-L/(r*r*3.14) плюс какой-то штраф за рассеивание цвета допустим 30%.
    Написано
  • Какие есть простые программы для рисования с AI компаньоном? Для рисования геометрии, ввода текста, без каких-то "Вставок"?

    @SergeySerge11 Автор вопроса
    Сергей Соколов, очевидно после "O" должно быть прст, по разнице размеров, вполне можно научить распознавать обозначение Точек многоугольника, или системы координат. (например если хранить все опознанные фигуры(а любая автозамена, автоматически опознана), в kd дереве, и быстро находить что надпись рядом с точкой, плюс можно натренировать, типа считать сколько раз конкретный пользователь нажмет отмена коррекции).
    Точки вообще баг и ошибка всех редакторов, не один человек в мире за всю историю вселенной точку не вводил не в одном редакторе(Так ка нужно сделать тонну действий, как изменить размер шрифта или пера, а потом вернуть, еще цвет поменять). всегда это фигура, или жирная калякуля, кому в голову приходит точку ввести, прям всегда мискликом или забыванием про контекст метода ввода вводится и сразу ctrl-z нажатие, отсюда можно легко ввести функциях авто прямых с 1 щелчком, и вторым щелчком по второй точки. Без лишнего нажатия в редакторе смены типа ввода, что всегда отвлекает.
    Я не говорю про рисования чего-то, а больше как инструмент для лекций, например любое видео лекции в ютубе это либо доска с мелом, либо просто рисование мышкой такое https://www.youtube.com/watch?v=jgBd0lxjlyo&t=1334s Но не каких блокнотов вордов, поверпоинтов, или фотошопов.

    Короче это точно идея для проекта, которого в мире еще нету.
    Написано
  • Куда пропала активация Windows?

    @SergeySerge11 Автор вопроса
    SunTechnik, а как установить нормальную windows, где купить то ее, гдле найти iso образ, с торрента скачивать что ли? я не понимаю, если пк за 200к но нету дисковода, в 2024 году. Почему не могу скачать https://www.microsoft.com/ru-ru/software-download/... отсюда, а если и скачал то не запускается средство.
    Пишет "при запуске этого средства возникла неизвестная пробемма" 0x800700002-0x2000000
    Загружал с флешке на которую записывал винду года 2-3 назад, с офф сайта.
    Ща еще какой-то вводный знак на пол экрана появился.
    Написано
  • Куда пропала активация Windows?

    @SergeySerge11 Автор вопроса
    о впервые за 10000 запусков команда sfc /scannow что-то нашла и восстановила. ТОЛЬКО как она могла найти что-то сломанное в в винде полностью переустановлённой в исходное состояние из магазина.
    Написано
  • Куда пропала активация Windows?

    @SergeySerge11 Автор вопроса
    Сервер сценариев Windows (Microsoft ®) версия 5.812
    Copyright (C) Корпорация Майкрософт 1996-2006, все права защищены.

    Версия службы лицензирования программного обеспечения: 10.0.19041.2965

    Имя: Windows(R), Professional edition
    Описание: Windows(R) Operating System, VOLUME_KMSCLIENT channel
    Идентификатор активации: xxx
    Идентификатор приложения: xxx
    Расширенный PID: xxx
    Канал ключей продуктов: Volume:GVLK
    Идентификатор установки: 703751355497556096812682881172931769400306589457167957459870240
    Частичный ключ продукта: T83GX
    Состояние лицензии: уведомление
    Причина режима уведомления: 0xC004F056.
    Оставшееся число возвращений к исходному состоянию активации Windows: 1001
    Оставшееся число возвратов к исходному состоянию активации SKU: 1001
    Доверенное время: 20.09.2024 10:57:00
    Настроенный тип активации: все
    Чтобы активировать и обновить данные клиента службы управления ключами (KMS) (для обновления значений), выполните сценарий с указанным параметром: slmgr.vbs /ato.

    Далее жму это slmgr.vbs /ato
    И получаю ошибку
    Активация Windows(R)...
    (2defgdfg-fgdfgdf-fdgdfgdf)
    Ошибка 0x8007007b Синтаксическая ошибка в имени файла, имени папки или метке тома (SWbemObjectEx)
    Написано
  • Куда пропала активация Windows?

    @SergeySerge11 Автор вопроса
    я не понимаю что это за слова и не хочу понимать, Я даже не могу на сайт Майкрософта без впн зайти и скачать средство востановления
    И запустить его не могу. на компьютер который вернул к заводским настройкам ошибка Ошибка ошибка,
    Написано
  • Как в вершинjм буфере вычисляются глобальные координаты?

    @SergeySerge11 Автор вопроса
    U235U235, ну это понятно, ну это же долго, я спрашиваю, есть ли какие способы оптимизировать.
    Например, самая лучшая оптимизация очевидна, Идеал.
    По дереву узлов пройтись и перемножить все матрицы, сверху вниз и умножить на вершины. Только на Cpu можно сделать.
    На gpu же наоборот с самого низа нужно к верху пройтись, отсюда, куча соседних вершин будут пересчитывать то что соседний поток так же считает.
    Как такую задачу решают Unity Unreal Crysis .... Я не верю что они берут и все умножают снизу вверх. Наверное есть какие-то трюки.
    А там типичная сцена, к примеру пробка машин в городе, где в каждой авто виден водитель, у которого видна рука на руле. Пол сцены будут объекты с 2 иерархией матриц, А еще есть такая тема как дивергенция кода, если один поток видет if для которого выполняется true, то и все другие в варпе будут выполнять эту функцию, отсюда не то что некоторые потоки будут куча работы выполнять, но и вообще все потоки, допустим из всяких статических объектов, так же будут рассматривается грубо говоря как вершина пальца руки персонажа в машине.
    Написано
  • Ошибка MSB3021 Не удается скопировать файл, Процесс не может получить доступ к файлу, Как навсегда исправить эту ошибку?

    @SergeySerge11 Автор вопроса
    MVV, что это значит, непонимаю, что проверить, 100% проц есть какая настройка.
    Написано
  • Ошибка MSB3021 Не удается скопировать файл, Процесс не может получить доступ к файлу, Как навсегда исправить эту ошибку?

    @SergeySerge11 Автор вопроса
    MVV, что это значит, непонимаю, что проверить, 100% проц есть какая настройка.
    Написано
  • Как транспонировать биты числа максимально быстро?

    @SergeySerge11 Автор вопроса
    Что за число 0x1248 = 0001_0010_0100_1000 не могу понять, почему не 1000_0100_0010_0001
    Написано
  • Как транспонировать биты числа максимально быстро?

    @SergeySerge11 Автор вопроса
    65к это больше чем локальной памяти на видеокарте
    Написано
  • Как устроено окто дерево? Как происходит отсечение видимых грайней?

    @SergeySerge11 Автор вопроса
    Wataru,
    Ясно, что эта оптимизация не работает хорошо 100% времени. И без нее на конкретно вашем компьютере может хватать вычислительной мощности для 60фпс. Но если она работает достаточно часто, то почему бы ее и не применить?

    Значит что-то я упускаю, какой-то момент. Который упрощает что-то, там где не ожидаешь. Может локальность какая-то должна появляется, Например что является результатом получения флуструма. Список индексов, или список вершин? Или список локально близких индексов? Так как если вот просто передать список индексов в случайном порядке, то получится случайный доступ с двойному указателю, который может в 10 раз все замедлить, тестил, а на сортированных вершинах нет просадок.
    Написано
  • Как устроено окто дерево? Как происходит отсечение видимых грайней?

    @SergeySerge11 Автор вопроса
    понятно что не надо проверять, но это всю-равно долго.
    А профит тут в том, что вы вот так вот обходите не все дерево. а только маленькую его часть.

    Что значит маленькую часть, в почти любой игре игрок видит 1/4 карты. Я чего-то упускаю?
    Вот я скачал 3d сцены по 20-100 млн вершин, и смотрю на них полностью, с высоты. то есть что там отсекается, там ничего не отсекается, если я всю сцену вижу, и никах лагов нету, тогда зачем нужна эта фаза.
    Написано
  • Как хранятся объекты в Unity на сцене? Как проиходит отсечение видимых объектов?

    @SergeySerge11 Автор вопроса
    a3dline, а не подскажите еще, все не могу понять, как происходит конкретная отрисовка примитивов треугольников, есть 2 варианта,
    1. Как в учебниках по линиям слева на право.
    2. По фрагментам, для каждого пикселя все фрагменты проверяются через уравнение принадлежности точки треугольнику

    Еще непонятно что приходит на вход фрагментного шейдера(если 1 способ верен, он вообще там есть).
    Допустим есть сцена, после этапа кулинга поступает далее(куда то же не понятно?) миллион(миллиард что бы на гипер параметре лучше понять) треугольников.
    Тогда в среднем на 1 пиксель будет конкурировать где-то допустим 10 тысяч треугольников.
    Есть ли тут какие-то дальнейшие действия. В зависимости от 1 вопроса.
    Например я обнаружил, что если сортировать треугольники то они отрисовываются намного быстрее по 1. методу.
    А по второму методу, к примеру нужна какая-то дополнительная группировка, допустим разбиение плоскости на клетки по 32*32 пикселя. И проверкой только тех которые принадлежат тайлу.
    Есть ли вообще такое
    Написано
  • Как составить итерационное уравнение для барицентрических координат?

    @SergeySerge11 Автор вопроса
    mayton2019, обычное преобразование(без преобразований) из float int. *(int*)(float*)x Для Чтение старшего бита, знака
    (a^b ) | (b^c) > 0 может быть больше нуля, только если старший бит равен нулю, а будет равен нулю, только если a,b,c>0 или a,b,c<0, тогда точка лежит внутри треугольника
    Написано
  • Как хранятся объекты в Unity на сцене? Как проиходит отсечение видимых объектов?

    @SergeySerge11 Автор вопроса
    a3dline, спасибо за ответ.
    Еще пару вопросов, а как хранятся на gpu данные сцены, к примеру есть такое что все вершины сцены хранятся(или попадают) в одном буфере. Что бы был один буфер индексов возможно полностью скрытый от фронтенда, Или у каждого gameobject свой буфер вершин, буфер индексов в разных местах памяти, а объекты тогда через двойной указатель должны находится в ядрах gpu.
    Еще на счет RayTracing, Это полностью другой конввер рендеринга? Типа там нету ни какого отсечения, растеризации, рисования, типа просто идут лучи, по числу пикселей экрана, и проверяются пересечения с объектами в BVH дереве. И типа так просто, или мне только кажется.
    Написано