сорри...вот все равно не пойму...
ну вот например
smoothstep(0.2 ,0.0 , 0.0);
почему в этом случае выдаст 1?
на вход 0, 0 < 0.2 , должно быть 0
ну следуя логики определения smoothstep
smoothstep(EDGE0, EDGE1, VALUE)
в этом примере
smoothstep(.2 ,0. ,color);
получается что если color < 0.2 (первый параметр EDGE0) то там выдавать 0
а если color > 0 (второй параметр EDGE1) то выдавать 0
а тут градиент от 0 до 1
и я не понимаю почему при 0 наоборот выдает 1
Дело в том что это из книги Шнейдеров, там именно такой порядок.... А я пытаюсь понять почему
Читать полностью…можете объяснить плиз почему
smoothstep(.2 ,0. ,color);
дает такую картину?
SmoothStep принимает 3 параметра:
EDGE0 - "нижняя" граница плавного перехода
EDGE1 - "верхняя" граница плавного перехода
VALUE - значение, которое будет модулироваться
Если VALUE < EDGE0 возвращается 0.
Если VALUE > EDGE1 возвращается 1.
Если VALUE находится посередине, то возвращается значение между 0 и 1 на S-кривой.
а в данном примере вообще как то все инвертировано непонятно
тоже про него подумал ))
было тут как-то про кинотеатры и как кинозал лучше отобразить ))
var box;
const canvas = document.getElementById("renderCanvas"); // Get the canvas element
const engine = new BABYLON.Engine(canvas, true, { stencil: true }, true); // Generate the BABYLON 3D engine
// Add your code here matching the playground format
const createScene = function () {
const scene = new BABYLON.Scene(engine);
const camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 10, new BABYLON.Vector3(0, 0, 0), scene);
camera.setPosition(new BABYLON.Vector3(0, 0, 20));
camera.attachControl(canvas, true);
const light = new BABYLON.HemisphericLight("HemiLight", new BABYLON.Vector3(1, 1, 0), scene);
// Default intensity is 1. Let's dim the light a small amount
light.intensity = 150;
const skybox = BABYLON.MeshBuilder.CreateBox("skyBox", {
size: 600
}, scene);
const skyboxMaterial = new BABYLON.StandardMaterial("skyBox", scene);
skyboxMaterial.backFaceCulling = false;
skyboxMaterial.reflectionTexture = new BABYLON.CubeTexture("textures/skybox", scene);
skyboxMaterial.reflectionTexture.coordinatesMode = BABYLON.Texture.SKYBOX_MODE;
skyboxMaterial.diffuseColor = new BABYLON.Color3(0, 0, 0);
skyboxMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
skybox.material = skyboxMaterial;
// const box = BABYLON.MeshBuilder.CreateBox("box", { height: 1, width: 0.75, depth: 0.25 });
var box = BABYLON.SceneLoader.ImportMeshAsync(null, "./models/", "model2.gltf");
camera.lowerAlphaLimit = camera.alpha;
camera.upperAlphaLimit = camera.alpha;
camera.lowerBetaLimit = camera.beta;
camera.upperBetaLimit = camera.beta;
var currentPosition = { x: 0, y: 0 };
var clicked = false;
canvas.addEventListener("pointerdown", function (evt) {
currentPosition.x = evt.clientX;
currentPosition.y = evt.clientY;
clicked = true;
});
canvas.addEventListener("pointermove", function (evt) {
if (!clicked) {
return;
}
box.rotation.y = (evt.clientX - currentPosition.x) / 30.0;
box.rotation.x = (evt.clientY - currentPosition.y) / 30.0;
});
canvas.addEventListener("pointerup", function (evt) {
clicked = false;
});
return scene;
};
const scene = createScene(); //Call the createScene function
// Register a render loop to repeatedly render the scene
engine.runRenderLoop(function () {
scene.render();
});
// Watch for browser/canvas resize events
window.addEventListener("resize", function () {
engine.resize();
});
box.rotation.y = (evt.clientX - currentPosition.x) / 30.0;- консоль ругается на эту строчку, так как типа box underfined.
ну направление градиента на справа налево а слева направо т.к. края местами поменяны
Читать полностью…В The Book of Shaders написано попроще
"The other unique function is known as smoothstep(). Given a range of two numbers and a value, this function will interpolate the value between the defined range. The two first parameters are for the beginning and end of the transition, while the third is for the value to interpolate."
.2 ,0. - поменяй местами, будет как надо )
я рассматриваю эту функцию как: все, что до значения первого параметра - 0; все, после значения второго параметра - 1; между ними - волнообразный переход )
собственно, что ты и имеешь в результате на картинке)
Добрый день, есть проблема с семплингом мип мап,
ddx(mainTexcoord); ddy(mainTexcoord)возвращают экстремально большие значения на стыке тайлов, из-за чего появляются артефакты в виде белых полос на стыке тайлов, иногда для соседних пикселей значения близкие к 1 Читать полностью…
я не вкурсе babylon, кажется что вряд ли async метод возвращает значение без await
Читать полностью…Я изменил работу двух рассширений для SillyTavern: TTS и Live2d (синхронизировал анимацию рта с озвучкой). Как это лучше оформить на гитхабе? Я прост раньше не форкал никого, а тут аж 2 репозитория задействованы...
Читать полностью…