Связывание базовой модели ASP.NET из маршрута и строки запроса

Да. В последних версиях tr.js r90^ имеет API, который можно использовать для изменения поведения встроенных материалов с помощью GLSL.

Это непросто сделать, но был сделан пример:

https://github.com/pailhead/three.js/blob/aa72250835b82f7dde2e8375775a4b039cb719c6/examples/webgl_materials_extended_multiple_uvs.html

https: // github .com / mrdoob / three.js / pull / 14174

В основном встроенные материалы основаны на шаблонах шейдеров, которые являются просто упорядоченным списком операторов #include .

Некоторые из этих «кусков» содержат некоторый код, который выглядит так

/*...*/ texture2D( foo, vUv ) /*...*/

Где foo - alphaMap, map, specularMap и т. д. Это означает что поиск текстуры выполняется на этом семплере, в интерполированном атрибуте uv. Вам все равно, что предшествует этому коду или что следует за ним (это может быть только точка с запятой ; или маска .xy).

Итак, что вы хотите сделать какое-то смещение или способ, которым выполняет тр.js, применить преобразование mat3.

Таким образом, GLSL должен выглядеть следующим образом

texture2D( foo, foo_transform * vUv )

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

Это гораздо лучшее решение, чем изменение текстур, и на самом деле должно быть проще, чем писать пользовательские ShaderMaterial.

Отказ от ответственности - три на самом деле не предназначены для использования таким образом, но могут быть. Так, например, в то время как каждая карта имеет префикс somethingMap, альбедо-карта не является, и ее просто называют map, если это albedoMap, регулярное выражение в этом примере было бы проще.

1
задан Newm 17 January 2019 в 10:43
поделиться

1 ответ

Комментарий от Imantas указал мне на использование [FromQuery] для модели представления, которая теперь выглядит следующим образом:

public class DetailsQuery
{
  [Required]
  public int? ClockNumber { get; set; }
  [Required]
  public int? YearFrom { get; set; }
  [Required]
  public int? YearTo { get; set; }
  [FromQuery]
  public bool CheckHistoricalFlag { get; set; } = false;
}

Метод контроллера теперь:

[AllowAnonymous]
[HttpGet("/api/employees/{clockNumber:int}/calendar/{yearFrom:int}/{yearTo:int}")]
public ActionResult Get([FromRoute]DetailsQuery query)
{
  return Ok();
}

, который работает как ожидалось.

Спасибо за указатель Imantas.

0
ответ дан Newm 17 January 2019 в 10:43
поделиться
Другие вопросы по тегам:

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