1 / 1 / 0
Регистрация: 10.11.2019
Сообщений: 124
1

three js 3D text

18.10.2022, 13:41. Показов 622. Ответов 1

Author24 — интернет-сервис помощи студентам
Нужна помощь, не могу понять как правильно сделать через dat.gui чтобы у меня размер текста менялся через интерфейс. Пробовал выносить размер и высоту как глобальные перемены, если в dat.gui он появлялся, то задний фон просто был черный. Заранее спасибо
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!DOCTYPE html>
<html>
    <head> 
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
         <title>111111</title>
         <script src="./js/three.js"></script>
         <script src="./js/TrackballControls.js"></script>  
         <script src="./js/dat.gui.js"></script>    
    </head>
    <body>
        
        <script>
 
        
        init();
    
            function init()
            {
                
 
                var renderer = window.WebGLRenderingContext ? new THREE.WebGLRenderer({antialias:true}) : new THREE.CanvasRenderer();
                renderer.setClearColor(new THREE.Color(0xEEEEEE));
                renderer.setSize( window.innerWidth, window.innerHeight );
 
                document.body.appendChild( renderer.domElement );
 
                var camera = new THREE.PerspectiveCamera(45,window.innerWidth / window.innerHeight, 0.1,1000);
 
                var scene = new THREE.Scene();
            
                var controls = new THREE.TrackballControls( camera );
                var ambiLight = new THREE.AmbientLight(0x141414);
        
                scene.add(ambiLight);
    
                var light = new THREE.DirectionalLight();
                light.position.set(0, 80, 200);
                scene.add(light);
                var size = 5;
                var height = 3;
                var fontLoader = new THREE.FontLoader();
                fontLoader.load("./fonts/Academia Libera_Regular.json",function(font){
                var  text_Geometry = new THREE.TextGeometry("3D Text", {
                    size: size,
                    height: height,
                    curveSegments: 6,
                    bevelEnabled: true, 
                    bevelThickness: 2, 
                    bevelSize: 1, 
                    material: 0, 
                    extrudeMaterial: 1, 
                    font: font});
                    
 
                
                var Texture = THREE.ImageUtils.loadTexture( 'images/1.jpg' ); 
                Texture.wrapS = Texture.wrapT = THREE.RepeatWrapping; 
                Texture.repeat.set( 0.05, 0.05 ); 
                var Material = new THREE.MeshBasicMaterial( { map: Texture } ); 
                
                var ExtrTexture =  THREE.ImageUtils.loadTexture( 'images/2.jpg' ); 
                ExtrTexture.wrapS = ExtrTexture.wrapT  = THREE.RepeatWrapping;
                ExtrTexture.offset.set( 0, 0.7 );
                ExtrTexture.repeat.set( 0, 0.13 ); 
                var extrMaterial =  new THREE.MeshBasicMaterial( { map: ExtrTexture } ); 
    
                var materials = [ Material, extrMaterial ]; 
                var text = new THREE.Mesh(text_Geometry, materials );
                text_Geometry.center();
                scene.add(text);
                })
             
 
                camera.position.x ==-50;
                camera.position.y = 70;
                camera.position.z = 200;
                camera.lookAt(scene.position);
 
                var controls = new function()
                {
                    this.size = 5;
                    this.height = 3;
                }
 
                var gui = new dat.GUI();
                gui.add(controls,'size',5,100);
                gui.add(controls,'height',3,100);
            
 
                
                renderScene();
 
                function renderScene() 
                {
 
                requestAnimationFrame( renderScene );
                controls.update();
                renderer.render( scene, camera );
                }   
            
};
 
        </script>
    </body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2022, 13:41
Ответы с готовыми решениями:

результат выборки из БД: rs.next(); String text=rs.getString('text'); <input type=text name=name value=<%=text%>>
Возникла проблема в текстовое поле надо вывести результат выборки из БД rs.next(); String...

Error CS1061: 'Text' does not contain a definition for 'Text' and no accessible extension method 'Text'
error CS1061: 'Text' does not contain a definition for 'Text' and no accessible extension method...

Чтение из файла с заданной строки [text] до [text] при этом не читать строки [text] а только всё что между ними
Чтение из файла с заданной строки до при этом не читать строки а только всё что между ними ...

Как задать диапазон Shapes. Range(Array("Text box 1", "Text box 2", "Text box 3", "Text box 4"."Text box 10").Select
Здравствуйте, все. Подскажите, пожалуйста, возможно ли в макросе VBA MS Word заменить область...

ActiveX Control: Form1.Show bvModal if(Form1.Text1.Text <> '') then UserControl.Text2.Text = Form1.Text1.Text
Имеется проект ActiveX Control, в нем: Form1(имеет Text1, Button1), UserControl1 (имеет Text2,...

1
5158 / 2770 / 465
Регистрация: 05.10.2013
Сообщений: 7,321
Записей в блоге: 147
19.10.2022, 15:49 2
Чтобы облегчить форумчанам эксперименты с вашим кодом, копируйте код в песочницу. На данный момент, мне больше всех нравится Plunker: https://plnkr.co/ Прежде всего, мне эта песочница нравится тем, что в неё можно перетаскивать файлы (картинки, json-файлы и т.д.). Я перенёс ваш пример в песочницу https://plnkr.co/edit/Xrnw1ZT4H8xe2MPc и подключил библиотеки. Войдите в Plunker, например, с помощью GitHub. Сделайте Fork моего примера и закиньте недостающие файлы:
  • ./fonts/Academia Libera_Regular.json
  • images/1.jpg
  • images/2.jpg

Нажмите Save и скопируйте ссылку на форум. Код и ресурсы (картинки и json) из песочниц нужно дублировать на форуме потому что есть правила форума:

4.11. Картинки и любые другие файлы загружайте на форум, во избежание их удаления или потери на сторонних ресурсах. По этой же причине коды программ также должны находиться на форуме.
Для index.html с JS надо использовать тег PHPHTML:

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<!DOCTYPE html>
<html>
 
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Example</title>
    <script src="https://unpkg.com/three@0.145.0/build/three.min.js"></script>
    <script src="https://unpkg.com/three@0.145.0/examples/js/controls/TrackballControls.js"></script>
    <script src="https://unpkg.com/dat.gui@0.7.9/build/dat.gui.min.js"></script>
    <link rel="stylesheet" href="https://unpkg.com/dat.gui@0.7.9/build/dat.gui.css">
</head>
 
<body>
 
    <script>
        init();
 
        function init()
        {
            var renderer = window.WebGLRenderingContext ? new THREE.WebGLRenderer(
            {
                antialias: true
            }) : new THREE.CanvasRenderer();
            renderer.setClearColor(new THREE.Color(0xEEEEEE));
            renderer.setSize(window.innerWidth, window.innerHeight);
 
            document.body.appendChild(renderer.domElement);
 
            var camera = new THREE.PerspectiveCamera(45,
                window.innerWidth / window.innerHeight, 0.1, 1000);
 
            var scene = new THREE.Scene();
 
            var controls = new THREE.TrackballControls(camera);
            var ambiLight = new THREE.AmbientLight(0x141414);
 
            scene.add(ambiLight);
 
            var light = new THREE.DirectionalLight();
            light.position.set(0, 80, 200);
            scene.add(light);
            var size = 5;
            var height = 3;
            var fontLoader = new THREE.FontLoader();
            fontLoader.load("./fonts/Academia Libera_Regular.json", function(font)
            {
                var text_Geometry = new THREE.TextGeometry("3D Text",
                {
                    size: size,
                    height: height,
                    curveSegments: 6,
                    bevelEnabled: true,
                    bevelThickness: 2,
                    bevelSize: 1,
                    material: 0,
                    extrudeMaterial: 1,
                    font: font
                });
 
                var Texture = THREE.ImageUtils.loadTexture('images/1.jpg');
                Texture.wrapS = Texture.wrapT = THREE.RepeatWrapping;
                Texture.repeat.set(0.05, 0.05);
                var Material = new THREE.MeshBasicMaterial(
                {
                    map: Texture
                });
 
                var ExtrTexture = THREE.ImageUtils.loadTexture('images/2.jpg');
                ExtrTexture.wrapS = ExtrTexture.wrapT = THREE.RepeatWrapping;
                ExtrTexture.offset.set(0, 0.7);
                ExtrTexture.repeat.set(0, 0.13);
                var extrMaterial = new THREE.MeshBasicMaterial(
                {
                    map: ExtrTexture
                });
 
                var materials = [Material, extrMaterial];
                var text = new THREE.Mesh(text_Geometry, materials);
                text_Geometry.center();
                scene.add(text);
            });
 
            camera.position.x == -50;
            camera.position.y = 70;
            camera.position.z = 200;
            camera.lookAt(scene.position);
 
            var controls = new function()
            {
                this.size = 5;
                this.height = 3;
            }
 
            var gui = new dat.GUI();
            gui.add(controls, 'size', 5, 100);
            gui.add(controls, 'height', 3, 100);
 
            renderScene();
 
            function renderScene()
            {
                requestAnimationFrame(renderScene);
                controls.update();
                renderer.render(scene, camera);
            }
 
        };
    </script>
</body>
 
</html>
1
19.10.2022, 15:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2022, 15:49
Помогаю со студенческими работами здесь

Сохранение текста (label.text или textBox.text) для повторного использования
В общем когда пользователь входит необходимо чтоб он авторизовался, а для того чтоб этого не делать...

Как исправить ошибку too many actual parameters-делфи. Строка Edit6.Text, Edit7.Text)
procedure TForm1.Button1Click(Sender: TObject); begin if RadioButton1.Checked then ...

Процедуры: Ввод(text)-Вычисление(string)-Вывод(text)
Обращаюсь за помошью, т.к. сама уже давно не могу понять в чём дело. Задание: С массивами STRING,...

Одновременное использование text-indent и text-align:justify
Здравствуйте, уважаемые! Возможно, мой вопрос и покажется наивным (смешным), НО! Возникла...

Не работает выборка типа <pole1> like '%<text>%' or <pole2> like '%<text>%'
прошу прощения за может глупый вопрос, но играюсь уже второй день и не могу понять в чем дело ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru