Calendar February 22, 2016 14:05

Blogger Blogger

CS 2420 - Assignment 4 - Part 3

Its been a few days since my last entry, and I have to say that I have made a lot of progress with my List class. I have now finished everything except for creating my own Enumerator. I still haven't figured out how to write that part, hopefully it won't be too hard.

Here is what I have so far:

using System;
using System.Collections;
using System.Collections.Generic;

class MyList : IList
{
private T[] underlyingArray;
private int element_count;

public MyList(int initial_size)
{
underlyingArray = new T[initial_size];
element_count = 0;
}

public T this[int index]
{
get
{
return underlyingArray[index];
}

set
{
underlyingArray[index] = value;
}
}

public int Count
{
get
{
return element_count;
}
}

private void UpdateCount(int amount)
{
element_count += amount;
}

public bool IsReadOnly
{
get
{
return underlyingArray.IsReadOnly;
}
}

public void Add(T item)
{
try
{
underlyingArray[Count] = item;
UpdateCount(1);
}
catch (IndexOutOfRangeException)
{
Resize(underlyingArray);
Add(item);
}
}

public void Clear()
{
for (int index = 0; index < Count; index++)
underlyingArray[index] = default(T);

UpdateCount(-Count);
}

public void Resize(T[] array)
{
T[] newArray = new T[array.Length * 2];

for (int index = 0; index < array.Length; index++)
newArray[index] = array[index];

underlyingArray = newArray;
}

public bool Contains(T item)
{
for (int index = 0; index < Count; index++)
if (EqualityComparer.Default.Equals(underlyingArray[index], item))
return true;
return false;
}

public void CopyTo(T[] array, int arrayIndex)
{
if (Count == array.Length)
Resize(array);

for (int index = Count; index > arrayIndex; index--)
array[index] = array[index - 1];

underlyingArray = array;
}

public IEnumerator GetEnumerator()
{
for (int i = 0; i < underlyingArray.Length; i++)
yield return underlyingArray[i];
}

// TODO No yield
public IEnumerator GetEnumeratorNoYield()
{
throw new NotImplementedException();
}

public int IndexOf(T item)
{
for (int index = 0; index < Count; index++)
if (EqualityComparer.Default.Equals(underlyingArray[index], item))
return index;
return -1;
}

public void Insert(int index, T item)
{
if (Count == underlyingArray.Length)
Resize(underlyingArray);
if (index >= Count)
Add(item);
else
{
CopyTo(underlyingArray, index);
underlyingArray[index] = item;
UpdateCount(1);
}
}

public bool Remove(T item)
{
for (int index = 0; index < Count; index++)
if (EqualityComparer.Default.Equals(underlyingArray[index], item))
{
RemoveAt(index);
return true;
}
return false;
}

public void RemoveAt(int index)
{
while (index < Count - 1)
{
underlyingArray[index] = underlyingArray[index + 1];
index++;
}
UpdateCount(-1);
underlyingArray[Count] = default(T);
}

IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}

I know that I probably still need to fix a bunch of stuff in my class, but for now I think I'm done with it. I will now focus on writing functions that put my List class to the test.

That's all for now, thanks for reading!

Replies 0 Comments Reply Reply

Calendar February 17, 2016 21:35

Blogger Blogger

CS 2420 - Assignment 4 - Part 2

So I have now finished the first part of this assignment, and I have now moved on to creating a List class using the IList interface and Generics.

I am going to be honest here, I had no idea how to start this part of the assignment. At first I thought I was building another Linked List class, but after talking to a friend of mine he got me started on the right direction. He told me that I had to use an array and I had to manually keep track of the items in the array.

I can't just insert items into the array at any index, I have to keep it all together and I have to manage the size of the array as well or use any built in functions. Basically, this is going to be the hardest assignment I've done so far. Here is what I have so far:

using System;
using System.Collections;
using System.Collections.Generic;

class MyList : IList
{
public T[] underlyingArray;
private int element_count;

public MyList(int initial_size)
{
this.underlyingArray = new T[initial_size];
this.element_count = 0;
}

// TODO Implement: Indexer
public T this[int index]
{
get
{
throw new NotImplementedException();
}

set
{
throw new NotImplementedException();
}
}

public int Count
{
get
{
return this.element_count;
}
}

public bool IsReadOnly
{
get
{
return this.underlyingArray.IsReadOnly;
}
}

// TODO Handle Exception
public void Add(T item)
{
if (element_count < this.underlyingArray.Length)
{
this.underlyingArray[element_count] = item;
this.element_count++;
}

else
throw new IndexOutOfRangeException();
}

public void Clear()
{
this.element_count = 0;
}

public bool Contains(T item)
{
for (int index = 0; index < Count; index++)
{
if (EqualityComparer.Default.Equals(underlyingArray[index], item));
return true;
}
return false;
}

// TODO Implement: Copy
public void CopyTo(T[] array, int arrayIndex)
{
throw new NotImplementedException();
}

// TODO Implement: Get Enumerator
public IEnumerator GetEnumerator()
{
throw new NotImplementedException();
}

// TODO Implement: Index of
public int IndexOf(T item)
{
throw new NotImplementedException();
}

// TODO Implement: Insert
public void Insert(int index, T item)
{
throw new NotImplementedException();
}

// TODO Implement: Remove
public bool Remove(T item)
{
throw new NotImplementedException();
}

// TODO Implement: Remove at
public void RemoveAt(int index)
{
throw new NotImplementedException();
}

// TODO Implement: Get IEnumerable
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}

So far I have only worked on a couple of functions, most importantly the Add function. This function will append an item to the end of the list, but I still haven't figured out how to manage the size of the array on my own.

That's all for now, thanks for reading!

Replies 0 Comments Reply Reply

Calendar February 12, 2016 08:44

Blogger Blogger

CS 2420 - Assignment 4 - Part 1

Now that we have turned in the last assignment, its time to start on the next one. This time we are switching languages to C#, which hasn't been easy getting used to the new syntax.

The assignment is split in two parts, first I have to rewrite all my sorts that I've done in past assignments but I have to implement an interface on each sort.

So far I have finished most of the sorts and implement the interface on each. Here is my Quick Sort for reference:

class QuickSort : ISorter
{
public void sort(int[] numbers, int low, int high)
{
if (low < high)
{
int pivot_location = partition(numbers, low, high);
sort(numbers, low, pivot_location);
sort(numbers, pivot_location + 1, high);
}
}

private static int partition(int[] numbers, int low, int high)
{
int pivot = numbers[low];
int wall = low;
for (int i = low + 1; i < high; i++)
{
if (numbers[i] < pivot)
{
wall++;
swap_numbers(numbers, i, wall);
}
}
swap_numbers(numbers, low, wall);
return wall;
}

private static void swap_numbers(int[] numbers, int index1, int index2)
{
int temp = numbers[index1];
numbers[index1] = numbers[index2];
numbers[index2] = temp;
}

}

I will try to finish this part of the assignment as soon as possible so I can move to the next part. That's all for now, thanks for reading!

Replies 0 Comments Reply Reply

Calendar February 10, 2016 22:36

Blogger Blogger

CS 2420 - Assignment 3

For assignment 3, we had to do two main things: create a linked list and a quicksort.

The Linked List was actually fairly straight forward, but the quicksort gave me the most trouble. Here is my file:

Replies 0 Comments Reply Reply

Calendar February 1, 2016 17:12

Blogger Blogger

CS 2420 - Assignment 2

For assignment 2, we had to write a couple different sorting algorithms and learn how to use lamdas in our code.

The sorting algorithms gave me the most trouble, but I was able to figure it out. Here is my code:

Replies 0 Comments Reply Reply

Calendar January 24, 2016 00:25

Blogger Blogger

CS 2420 - Assignment 1

So this semester I'm taking another programming class, CS 2420 called "Intro to Algorithms and Data Structures".

For the first assignment we had to write a few different functions using Python, which is great because its the language that I am the most familiar with it. Here is what I have:

Replies 0 Comments Reply Reply

Calendar January 2, 2016 01:19

Blogger Blogger

2048 Clone in Python

Let me start by saying Happy New Year to anyone that may be reading my blog!

So after I came back from my short vacation, I got sick and didn't have the energy to do anything. But I did have a chance to think for a while and I decided that I needed to get back into coding and brush up on my Python. The new semester starts in a bout a week or so and I need to get back into coding, even if I will be using Java in that class instead of Python. 

I decided that I should use Pygame (like I did a year ago in CS 1410 class) and create a simple game, and I decided to create a clone of the popular game 2048. I only started the other day and I have been working on getting a skeleton up and running and start planning on how I'm actually going to do this.

So far I have a simple screen with a "game board" displayed on the screen and I have started to work on the logic of the game before I do more "graphic" work. You can see my work on Github at the following link:


That's all for now, thanks for reading!

Replies 0 Comments Reply Reply

Calendar December 21, 2015 17:21

Blogger Blogger

Female 3D Model - Low Polygon Model Done

 
So today is the due date for my project that I've been blogging about for a few months. As you can see on the screenshot above, I have the low polygon model of both the dress and shawl on the body of my character.

As I said before, I tried to finish the model before so I could make a texture for it, but I ran out of time. I will be going on vacation in a few days, and won't be able to touch my project for about a week. When I come back, I will start working on laying out the UVs and eventually I will texture the model. I still don't know how I want to make the character look, but I think I will go for a stylized look.

My plan is to eventually: texture, bake maps, rig, and make a shader in Unity. I don't know how long it will take me to get all this done, but I think that its a good goal for early 2016.

That's all for now, and have a happy new year (in case I don't post again this year). I don't know how many people (if any) actually read this blog, but thanks for reading!

Replies 0 Comments Reply Reply

Calendar December 20, 2015 13:47

Blogger Blogger

Female 3D Model - Shawl Retopology in Topogun


So I did more work on the shawl in ZBrush to get the folds looking the way I want. This time it was really simple since I used my work on the dress to guide my work on the shawl.

I then took the high polygon model into Topogun just like I did with the dress before. This time it was much quicker to get this done, specially since its just one really long rectangle. Now that I am more familiar with the tools, I was able to just start putting points on the model and quickly worked my way around it. Tomorrow is the due date for this assignment, so I don't think that I will have a texture for it by tomorrow. While the texture is not required for the assignment, it was just a personal goal I had.

That's all for now, thanks for reading!

Replies 0 Comments Reply Reply

Calendar December 17, 2015 13:58

Blogger Blogger

Female 3D Model - Dress Detail Rework


So a couple days ago I thought I was done with the dress for my model, but after showing it to my professor he gave me some feedback on the folds. I decided to go back and do more work on it and I think this looks a lot better.

I went back and tried to add a few more folds, but I wanted to keep it light. I didn't have to worry about doing the retopology again since I didn't change the overall shape of the dress. I don't know if I will get to baking out the normal maps before I turn the assignment in, but since I will continue to work on this project I don't think of this as wasted work. That's all for now, thanks for reading!

Replies 0 Comments Reply Reply

Calendar December 15, 2015 21:52

Blogger Blogger

Female 3D Model - Dress Retopology in Topogun


So last week I was talking to a fellow classmate in my class and the subject of retopology came up. I told him that I would do the retopology for my dress in ZBrush. He told me that he would use Topogun and that its super easy to learn.

So today I decided to buy a license, its only $100 so I decided that it was worth it if it was even slightly easier than ZBrush. Well, I can say that it really is super easy. I didn't even watch a tutorial on Topogun and I figured out how to use it. I'm probably not using it to its maximum potential, but I managed to do the retopology for the dress in a couple hours while I learned the software. From here I can just export my work as an Obj and done.

I will work a little more on the shawl and I will also do the retopology in Topogun. Anyways, that's all for now. Thanks for reading!

Replies 0 Comments Reply Reply

Calendar December 11, 2015 00:45

Blogger Blogger

Female 3D Model - nCloth for Dress & Shawl


So after trying for a bit to make my dress in Marvelous Designer, I failed. I got a really good basic dress, but it just wasn't turning out how I wanted it. So I have now decided to go back to Maya and do more work with the nCloth system and get a good base dress and shawl that I like.

The above picture is of where I am right now after subdividing the dress a few times and playing with the settings for the simulation on the dress. I had to pin/anchor most of the dress from the hips up, which is why it looks really flat/unchanged on the top and with folds on the bottom.

From here I will take both pieces of cloth into ZBrush and try to do as much as possible there. I also don't have any experience making cloth in ZBrush, but I think that I have more control in ZBrush than I did in Marvelous Designer.

This project is due on December 20th, so I have to hustle and try to finish everything as soon as possible with the sculpt so I can get a texture started. That's all for now, thanks for reading!

Replies 0 Comments Reply Reply

Calendar December 8, 2015 00:31

Blogger Blogger

Cloth in Marvelous Designer

Front View
So here is my first attempt at making cloth in another software package called Marvelous Designer. I've honestly never used software like this before, but the gist is that its a tool used for making cloth and getting it to drape on your model in a natural way and its super easy to use. Now, this doesn't mean that I am now an expert at this, but this was my first crack at trying to make my dress in MD (short for Marvelous Designer). 

3/4 View
What I really like about this tool is that it works just like sewing in real life, you have to know where to make your cuts and what not. This is probably what gave me the hardest time, and still does. I know nothing about sewing or fashion, so I am having a hard time knowing where to put my cuts on the "cloth". I have been looking at how other people doe in real dresses, and I think I'm getting closer but I still have a long way to go.

Side View
Anyway, I will give it a few more attempts at making the dress in MD but I don't want to spend a lot of time learning a new software package when I need to get this textured within the next two weeks. If I give up in trying to make the dress in MD, I will make sure to come back and visit it since I am super impressed with this tool. That's all for now, thanks for reading!

Replies 0 Comments Reply Reply

Calendar December 3, 2015 23:24

Blogger Blogger

Female 3D Model - Version 1.0 Model Almost Finished


So I was a little lazy over thanksgiving break, and now I am mad at myself because I feel like I wasted a week. Now that I'm back, I'm done with the model that I've been working on for a couple months now. I know that it has been a really slow process, but this is the first time that I pushed myself this hard to do a character model.


Once I was done with the dress, I felt like she was still missing something, so I decided to create a shawl using the NCloth simulation. I'm not too familiar with it, but I think I will have to go back and rework it since the shawl drapes really weird on her shoulders. Once I'm done with that, I will have to reduce the polygon count on it, but I think I will do that part in ZBrush. 


I also worked on her shoes this week. At first I didn't want to give her high heels because I think its really quiche, but since she is wearing an evening-like dress, she has to wear heels.

Next I will finish the shawl and move on to doing the UV layouts for the model. For this assignment its not required that I texture her, but I do want to turn this into a portfolio piece. I will post progress on that as well, and over winter break I plan on working on a shader and on a rig for her. 

The reason for the shader and rig is that I was talking to my professor and he though that I should know the whole process a character goes through while in development for a game. And since I am now learning how to code, I think I'm starting to lean on becoming a Technical Artist. That's all for now, thanks for reading. 


Replies 0 Comments Reply Reply

Calendar November 20, 2015 01:32

Blogger Blogger

Female 3D Model - Hair Finished



So I finally managed to finish the hair. I will mention that this was my first true attempt at making hair in Maya, before I never really got this far with a character that I need to do hair. While I learned a lot in the process of making the hair, it took for ever to finish it. I did 4 layers of hair to give it some volume, and it still doesn't quite look the way I thought it would. But for now this is good enough and I won't touch it again.

I also did some work on the dress, but its also not finished yet. Also, earlier today I started to block out a gun holster that she will have on her exposed thigh. I still don't know how I will make it but I know that I will think of something.

For next week I hope to have the holster done and I hope to have started to work on the shoes. While I do know that having female spies in high heels is very cliche, I really like that look and I'm going for it anyways. I will make sure that they are not as ridiculous as stilettos, but my character will be wearing high heels.

That's all for now, thanks for reading!

Replies 0 Comments Reply Reply