@@ -98,7 +98,11 @@ public static DiffuseMaterial GetMaterial(SixLabors.ImageSharp.Image<Rgba32>? im
98
98
} ;
99
99
if ( image != null )
100
100
{
101
- material . Brush = new ImageBrush ( GetBitMap ( image ) ) ;
101
+ material . Brush = new ImageBrush ( GetBitMap ( image ) )
102
+ {
103
+ TileMode = TileMode . Tile ,
104
+ ViewportUnits = BrushMappingMode . Absolute
105
+ } ;
102
106
}
103
107
else
104
108
{
@@ -139,54 +143,11 @@ public static MeshGeometry3D GetMesh(RenderWareIo.Structs.Dff.Geometry geometry,
139
143
140
144
foreach ( var uv in geometry . TexCoords )
141
145
{
142
- mesh . TextureCoordinates . Add ( SanitzeUv ( uv ) ) ;
146
+ mesh . TextureCoordinates . Add ( new Point ( uv . X , uv . Y ) ) ;
143
147
}
144
148
return mesh ;
145
149
}
146
150
147
- private static Point SanitzeUv ( Uv uv )
148
- {
149
- //return new Point(uv.X, uv.Y);
150
- //return new Point((uv.X + 100f) % 1, (uv.Y + 100) % 1f);
151
- //return new Point(
152
- // uv.X < 0 ? uv.X + MathF.Round(MathF.Abs(uv.X) + 0.5f) :
153
- // uv.X > 1 ? uv.X % 1f :
154
- // uv.X,
155
- // uv.Y < 0 ? uv.Y + MathF.Round(MathF.Abs(uv.Y) + 0.5f) :
156
- // uv.Y > 1 ? uv.Y % 1f :
157
- // uv.Y
158
- //);
159
-
160
- //return new Point(
161
- // uv.X < -1 ? -(MathF.Abs(uv.X) % 1f) + MathF.Round(MathF.Abs(-(MathF.Abs(uv.X) % 1f)) + 0.5f) :
162
- // uv.X < 0 ? uv.X + MathF.Round(MathF.Abs(uv.X) + 0.5f) :
163
- // uv.X > 1 ? uv.X % 1f :
164
- // uv.X,
165
- // uv.Y < -1 ? -(MathF.Abs(uv.Y) % 1f) + MathF.Round(MathF.Abs(-(MathF.Abs(uv.Y) % 1f)) + 0.5f) :
166
- // uv.Y < 0 ? uv.Y + MathF.Round(MathF.Abs(uv.Y) + 0.5f) :
167
- // uv.Y > 1 ? uv.Y % 1f :
168
- // uv.Y
169
- //);
170
-
171
-
172
- if ( uv . X < - 1 )
173
- uv . X = - ( MathF . Abs ( uv . X ) % 1f ) ;
174
- if ( uv . Y < - 1 )
175
- uv . Y = - ( MathF . Abs ( uv . Y ) % 1f ) ;
176
-
177
- if ( uv . X < 0 )
178
- uv . X = ( uv . X + 100 ) ;
179
- if ( uv . Y < 0 )
180
- uv . Y = ( uv . Y + 100 ) ;
181
-
182
- if ( uv . X > 1 )
183
- uv . X = uv . X % 1.0f ;
184
- if ( uv . Y > 1 )
185
- uv . Y = uv . Y % 1.0f ;
186
-
187
- return new Point ( uv . X , uv . Y ) ;
188
- }
189
-
190
151
private static BitmapSource GetBitMap ( SixLabors . ImageSharp . Image < Rgba32 > image )
191
152
{
192
153
Rgba32 [ ] rgbaArray = new Rgba32 [ image . Width * image . Height ] ;
0 commit comments