Там кто-либо представляет альтернативы растеризации или трассировке лучей?

Это исходит из apply plugin: 'jacoco-android' ... это не поведение по умолчанию.

Если бы вы определили задачу в jacoco.gradle, этого не должно произойти, если только вы явно не запустили задачу.

или вы можете попробовать отключить генерацию задачи (возможно, это должно быть по вкусу dev):

android {
    buildTypes {
        debug {
            testCoverageEnabled false
        }
    }
}
14
задан Jonathan Ford 22 April 2009 в 22:36
поделиться

3 ответа

Ааа! Эти ответы очень неинформированы!

Конечно, это не помогает, потому что вопрос неточный.

Хорошо, «рендеринг» - действительно широкая тема. Одной из проблем рендеринга является видимость камеры или «алгоритмы скрытой поверхности» - выяснение того, какие объекты видны в каждом пикселе. Существуют различные классификации алгоритмов видимости. Это , вероятно, , о чем спрашивал плакат (учитывая, что они думали об этом как о дихотомии между " Они были чертовски креативны с алгоритмами в те времена, когда было не так много вычислительных циклов и не хватало памяти для хранения z-буфера.

В наши дни и вычисления, и память дешевы, и поэтому три метода имеют довольно много выиграл: (1) нарезать все на треугольники и использовать z-буфер; (2) лучевое литье; (3) Рейесоподобные алгоритмы, которые используют расширенный z-буфер для обработки прозрачности и тому подобное. Современные видеокарты занимают первое место; рендеринг программного обеспечения высокого уровня обычно делает № 2 или № 3 или их комбинацию. Хотя было предложено, а иногда и построено различное оборудование для трассировки лучей, но оно так и не завоевало популярность, а также современные графические процессоры теперь достаточно программируемы для трассировки лучей, хотя и с серьезным недостатком скорости по сравнению с их жестко закодированными методами растеризации. Другие, более экзотические алгоритмы, в основном, отошли на второй план за эти годы. (Хотя различные алгоритмы сортировки / разбрызгивания могут использоваться для рендеринга объема или других специальных целей.)

«Растеризация» на самом деле означает «выяснение, на каких пикселях лежит объект». Конвенция предписывает, что она исключает трассировку лучей, но это шатко. Я полагаю, вы могли бы оправдать, что растеризация отвечает «какие пиксели перекрывают эту форму», тогда как трассировка лучей отвечает «какой объект находится за этим пикселем», если вы видите разницу.

Итак, удаление скрытой поверхности - не единственная проблема для решаться в области «рендеринга». Знание того, какой объект виден в каждом пикселе, - это только начало; Вы также должны знать, какого это цвета, что означает наличие некоторого метода вычисления того, как свет распространяется по сцене. Есть целый ряд методов, обычно разбивается на работу с тенями, отражениями и «глобальным освещением» (то, что отражается между объектами, а не идет непосредственно от источников света).

«Трассировка лучей» означает применение метода приведения лучей, чтобы также определить видимость для теней , отражения, глобальное освещение и т. д. Можно использовать трассировку лучей для всего или использовать различные методы растеризации для видимости камеры и трассировки лучей для теней, отражений и GI. «Картирование фотонов» и «трассировка пути» - это методы для расчета определенных видов распространения света (используя трассировку лучей, поэтому просто неправильно говорить, что они каким-то образом принципиально отличаются от техники рендеринга). Существуют также методы глобального освещения, которые не используют трассировку лучей, такие как «излучение» методы (который является методом конечных элементов для решения глобального распространения света, но в большинстве областей в последнее время потерял популярность). Но использование радио- или фотонного картирования для распространения света STILL требует, чтобы вы каким-то образом сделали окончательное изображение, как правило, с помощью одного из стандартных методов (приведение лучей, z-буфер / растеризация и т. Д.). , тома, треугольники) тоже немного запутаны. Это ортогональная проблема для трассировки лучей против растеризации. Например, вы можете непосредственно проследить трассировку nurbs, или вы можете разрезать nurbs в треугольники и проследить их. Вы можете напрямую растеризовать треугольники в z-буфер, но вы также можете напрямую растеризовать параметрические поверхности высокого порядка в порядке сканирования (см. Lane / Carpenter / etc CACM 1980).

но в большинстве районов поля в последнее время не пользуются популярностью). Но использование радио- или фотонного картирования для распространения света STILL требует, чтобы вы каким-то образом сделали окончательное изображение, как правило, с помощью одного из стандартных методов (приведение лучей, z-буфер / растеризация и т. Д.). , тома, треугольники) тоже немного запутаны. Это ортогональная проблема для трассировки лучей против растеризации. Например, вы можете непосредственно проследить трассировку nurbs, или вы можете разрезать nurbs в треугольники и проследить их. Вы можете напрямую растеризовать треугольники в z-буфер, но вы также можете напрямую растеризовать параметрические поверхности высокого порядка в порядке сканирования (см. Lane / Carpenter / etc CACM 1980).

но в большинстве районов поля в последнее время не пользуются популярностью). Но использование радио- или фотонного картирования для распространения света STILL требует, чтобы вы каким-то образом сделали окончательное изображение, как правило, с помощью одного из стандартных методов (приведение лучей, z-буфер / растеризация и т. Д.). , тома, треугольники) тоже немного запутаны. Это ортогональная проблема для трассировки лучей против растеризации. Например, вы можете непосредственно проследить трассировку nurbs, или вы можете разрезать nurbs в треугольники и проследить их. Вы можете напрямую растеризовать треугольники в z-буфер, но вы также можете напрямую растеризовать параметрические поверхности высокого порядка в порядке сканирования (см. Lane / Carpenter / etc CACM 1980).

как правило, с помощью одного из стандартных методов (приведение лучей, z-буфер / растеризация и т. д.). Люди, которые упоминают конкретные представления формы (NURBS, объемы, треугольники), также немного запутаны. Это ортогональная проблема для трассировки лучей против растеризации. Например, вы можете непосредственно проследить трассировку nurbs, или вы можете разрезать nurbs в треугольники и проследить их. Вы можете напрямую растеризовать треугольники в z-буфер, но вы также можете напрямую растеризовать параметрические поверхности высокого порядка в порядке сканирования (см. Lane / Carpenter / etc CACM 1980).

как правило, с помощью одного из стандартных методов (приведение лучей, z-буфер / растеризация и т. д.). Люди, которые упоминают конкретные представления формы (NURBS, объемы, треугольники), также немного запутаны. Это ортогональная проблема для трассировки лучей против растеризации. Например, вы можете непосредственно проследить трассировку nurbs, или вы можете разрезать nurbs в треугольники и проследить их. Вы можете напрямую растеризовать треугольники в z-буфер, но вы также можете напрямую растеризовать параметрические поверхности высокого порядка в порядке сканирования (см. Lane / Carpenter / etc CACM 1980).

или вы можете нарезать кубики на треугольники и отслеживать их. Вы можете напрямую растеризовать треугольники в z-буфер, но вы также можете напрямую растеризовать параметрические поверхности высокого порядка в порядке сканирования (см. Lane / Carpenter / etc CACM 1980).

или вы можете нарезать кубики на треугольники и отслеживать их. Вы можете напрямую растеризовать треугольники в z-буфер, но вы также можете напрямую растеризовать параметрические поверхности высокого порядка в порядке сканирования (см. Lane / Carpenter / etc CACM 1980).

42
ответ дан 1 December 2019 в 06:24
поделиться

Существует метод, называемый фотонным картированием , который на самом деле очень похож на трассировку лучей, но обеспечивает различные преимущества в сложных сценах. Фактически, это единственный метод (по крайней мере, из тех, которые я знаю), который обеспечивает действительно реалистичный (то есть соблюдение всех законов оптики) рендеринг, если все сделано правильно. Насколько мне известно, это метод, который используется экономно, поскольку его производительность значительно хуже, чем даже трассировка лучей (учитывая, что он эффективно работает наоборот и имитирует пути, пройденные фотонами от источников света к камере) - но это Единственный недостаток. Это, безусловно, интересный алгоритм, хотя вы не увидите его в широком масштабе до тех пор, пока не будет проведена трассировка лучей (если вообще когда-либо).

5
ответ дан 1 December 2019 в 06:24
поделиться

They should work as equals so that they politically can't be shut up by development managers who don't want to acknowledge problems. Qa can;t report to dev ever if they are to be effective.

--121 --- 1874668--

После добавления Scala Nature в проект плагина не забудьте включить scala.library в зависимости вашего плагина (и обновите соответствующий прогон). и конфигурация продукта)! (Кроме того, если при добавлении Scala Nature в пути сборки появляется другая системная библиотека JRE, вы можете безопасно удалить ее, чтобы избежать предупреждения RequiredExecutionEnvironment.)

--121 --- 2410750--

Я думаю, что нашел ответ.

Я делаю модуль data_path.py, который я импортирую в другие мои модули, содержащие:

data_path = os.path.join(os.path.dirname(__file__),'data')

И затем я открываю все свои файлы с помощью

open(os.path.join(data_path,'filename'), <param>)
- 121 --- 735262--

Лично я предпочитаю jQuery по следующим причинам: -

  1. Сообщество плагинов гораздо более разнообразно и привлекает разработчиков из самых разных областей (не только из стека MS). Для MS-AJAX на данный момент вы в значительной степени ограничены клиентским инструментарием управления AJAX для ваших виджетов пользовательского интерфейса.
  2. Я считаю, что jQuery API гораздо более применим к распространенным задачам на стороне клиента, чем те, которые предлагаются MS AJAX
  3. Учитывая отсутствие из-за дыма и зеркал WebForms, происходящих в MVC, вам иногда требуется жесткий контроль над DOM, чтобы делать определенные вещи, движок селектора CSS, предлагаемый jQuery, действительно помогает вам в этом. --121 --- 1856376--

    Вы можете использовать __ file __ , чтобы получить путь к пакету, например:

    import os
    this_dir, this_filename = os.path.split(__file__)
    DATA_PATH = os.path.join(this_dir, "data", "data.txt")
    print open(DATA_PATH).read()
    
    - 121 --- 735259--

    Может быть Решением этой проблемы может быть переопределение метода delete класса File с использованием кода из ответа Эриксона:

    public class MyFile extends File {
    
      ... <- copy constructor
    
      public boolean delete() {
        if (f.isDirectory()) {
          for (File c : f.listFiles()) {
            return new MyFile(c).delete();
          }
        } else {
            return f.delete();
        }
      }
    }
    
    - 121 --- 522865--

    Вы должны проверить Apache commons-io . Он имеет класс FileUtils , который будет делать то, что вы хотите.

    FileUtils.deleteDirectory(new File("directory"));
    
    - 121 --- 522861--

    Если объект блокировки должен быть статическим или нет, зависит от объекта, который вы хотите заблокировать , Если вы хотите заблокировать экземпляр класса, вы не можете использовать объект статической блокировки. Если вы хотите заблокировать статические данные, вы не можете использовать объект блокировки экземпляра. Так что, похоже, выбора нет.

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

    --121 --- 2959808--

    Я думаю, что вы ищете UI элемент для привязки элемента , который является особенностью Silverlight 3.

    --121 --- 1667284--

    Я посмотрел на ваш отредактированный вопрос.

    Когда я создаю экземпляры, используя Cons конструктор значения, эти экземпляры «интерпретировать» первое «а» как значение «поместите здесь значение, переданное здесь.

    В« Минусах a (Список а) »и« a », и« Список a »являются типами. Я не понимаю, какое значение имеет« значение ».

    Когда я набираю «Минусы 0 ноль», он использует Значение конструктора "Минусы" для создания экземпляр списка. С 0 он учится что тип параметра "Целое число". Пока что нет путаницы.

    Однако, это также определяет, что Значение первого поля минусов равно 0. Но это ничего не определяет о значение второго поля ... это только определяет, что второе поле имеет тип «Список целых чисел».

    Значение второго поля равно Ноль .

    Итак, мой вопрос: почему «а» в первое поле означает "тип этого поле «а» и значение этого поле «а», а «а» во втором поле означает только «тип этого поле «Список a» »?

    « a »в первом поле означает« тип этого поля - «a» ».« Список a »во втором поле означает« тип этого поля - «Список» a '". В случае" Cons 0 Nil "выше," a "подразумевается как" Integer ". Таким образом," Cons a (List a) "становится" Cons Integer (List Integer) ". 0 является значением типа Integer. Nil - это значение типа «List Integer».

    значение этого поля равно «a»

    Я не понимаю, что вы подразумеваете под этим. «a» является переменной типа; какое это имеет отношение к ценностям?

    --121 --- 3498426--

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

    При настройке сред dev / test / prod я стараюсь максимально точно соответствовать среде Prod, особенно в той области, над которой работаем (где усилия по разработке ставятся и т. д.). Поэтому, если бы я настраивал систему для разработки интерфейса с AD, у меня, вероятно, было бы несколько серверов AD.

    Какие варианты могут упростить администратора?

    Можно ли иметь 1 главный сервер, который вы поддерживаете стандартным образом, и использовать что-то вроде процесса копирования VMware для поддержки всех или большинства других? Вместо того, чтобы что-то делать с 9 серверами, Сохраните остальные 8 в качестве копий этого зеркала главного устройства, за исключением изменений, сделанных для поддержки dev / test?

    Можно ли запустить несколько доменов Dev или Test с 1 сервера AD?

    Можно ли выполнить сценарий действия?

    Можете ли вы уменьшить количество сред, особенно на более высоком конце теста? Например, предоставить несколько сред разработки и выпусков ролевой версии в один тестовый?

    --121 --- 4380303--

    Почему бы просто не использовать OU вместо отдельных доменов при тестировании? То есть иметь один домен, но указать, что пользователи для определенных версий должны находиться в определенном подразделении внутри этого домена. Что бы вы делали в своих функциях поиска для поиска пользователей, вы бы указали конкретное подразделение в качестве корня поиска вместо корня домена. В каждом подразделении у вас могут быть идентификаторы, которые включают в себя среду для сохранения их уникальности, например, user_env1_dev , user_env2_dev , user_env1_qa , ...

    Я использую AD много для моих приложений и никогда не настраивал отдельные домены для разработки / тестирования.

    --121 --- 4380304--

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

    О и вот отличная статья Джеффри Рихтера о правильном использовании блокировки. :)

    --121 --- 2959810--

    Статья о рендеринге в Википедии охватывает различные техники .

    Вступительный абзац:

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

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

    Таким образом, четыре свободные семьи более эффективный световой транспорт методы моделирования появились: растеризация , включая сканлин рендеринг, геометрически проекты объекты в сцене к изображению самолет, без продвинутого оптического последствия; Лучевое литье рассматривает сцена, как видно из конкретного точка зрения, вычисляя наблюдаемое изображение, основанное только на геометрии и очень основные оптические законы интенсивность отражения и, возможно, используя методы Монте-Карло, чтобы уменьшить артефакты; radiosity использует конечный элемент математики для моделирования рассеянное распространение света от поверхности; и трассировка лучей аналогична для лучевого литья, но использует больше передовое оптическое моделирование и обычно использует методы Монте-Карло для получить более реалистичные результаты на speed that is often orders of magnitude slower.

    Most advanced software combines two or more of the techniques to obtain good-enough results at reasonable cost.

    Another distinction is between image order algorithms, which iterate over pixels of the image plane, and object order algorithms, which iterate over objects in the scene. Generally object order is more efficient, as there are usually fewer objects in a scene than pixels.

    From those descriptions, only radiosity seems different in concept to me.

1
ответ дан 1 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: