Unity, C#
не стоит забывать, что непрограммисту 3Д на ЯП будет очень сложно освоить. А тут раз два и готово.
Всё то же самое. Что значит "раз, два и готово"? С блупринтами - там сотни и тысячи разных типов прямоугольничков, и нужно знать, что с чем стыкуется. Каждый прямоугольничик что ваш класс (или объект) в языке программирования (под капотом так оно и есть). И от того, что вы программируете визуально, вам легче не становится. Это всё та же идея визуального программирования, которая почила в бозе для бизнес-приложений, разных форм и прочего. А у тридешников просто с опозданием история повторяется. Ну и с шейдерами там сейчас так - они слишком переусложнённые и низкоуровненвые даже в последней версии какой-нибудь Shader Model, поэтому иногда проще делать на блупринтах. Модель подготовки и передачи данных в шейдер и из шейдера - как в каком-то С или ассемблере. Где функции, где параметры нормальные почему нет подсказок нормальных и выбора из готовых значений (типа энумы). Почему я должен забивать руками какие-то монструозные структуры, держа открытыми кучи справочников, чтобы знать, какие значения бывают и как их наполнять? Что это за нечитаемый бред?
Shader "Standard" {
Properties {
_Color ("Color", Color) = (1.000000,1.000000,1.000000,1.000000)
_MainTex ("Albedo", 2D) = "white" { }
_Cutoff ("Alpha Cutoff", Range(0.000000,1.000000)) = 0.500000
_Glossiness ("Smoothness", Range(0.000000,1.000000)) = 0.500000
_GlossMapScale ("Smoothness Scale", Range(0.000000,1.000000)) = 1.000000
[Enum(Metallic Alpha,0,Albedo Alpha,1)] _SmoothnessTextureChannel ("Smoothness texture channel", Float) = 0.000000
}
SubShader {
LOD 300
Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
Pass {
Name "FORWARD"
Tags { "LIGHTMODE"="FORWARDBASE" "SHADOWSUPPORT"="true" "RenderType"="Opaque" "PerformanceChecks"="False" }
ZWrite [_ZWrite]
Blend [_SrcBlend] [_DstBlend]